v4-0002-pg_prewarm-Use-generic-use-read-stream-struct-and.patch
application/x-patch
Filename: v4-0002-pg_prewarm-Use-generic-use-read-stream-struct-and.patch
Type: application/x-patch
Part: 1
Patch
Format: format-patch
Series: patch v4-0002
Subject: pg_prewarm: Use generic-use read stream struct and callback
| File | + | − |
|---|---|---|
| contrib/pg_prewarm/pg_prewarm.c | 4 | 23 |
From 84bc78cc36814309634c3686827b8a222bdfbfef Mon Sep 17 00:00:00 2001
From: Nazir Bilal Yavuz <byavuz81@gmail.com>
Date: Mon, 26 Aug 2024 12:16:06 +0300
Subject: [PATCH v4 2/5] pg_prewarm: Use generic-use read stream struct and
callback
Instead of creating another read stream struct and callback, use generic
one that is exported from read stream.
---
contrib/pg_prewarm/pg_prewarm.c | 27 ++++-----------------------
1 file changed, 4 insertions(+), 23 deletions(-)
diff --git a/contrib/pg_prewarm/pg_prewarm.c b/contrib/pg_prewarm/pg_prewarm.c
index 5c859e983c5..243d36c46e8 100644
--- a/contrib/pg_prewarm/pg_prewarm.c
+++ b/contrib/pg_prewarm/pg_prewarm.c
@@ -39,25 +39,6 @@ typedef enum
static PGIOAlignedBlock blockbuffer;
-struct pg_prewarm_read_stream_private
-{
- BlockNumber blocknum;
- int64 last_block;
-};
-
-static BlockNumber
-pg_prewarm_read_stream_next_block(ReadStream *stream,
- void *callback_private_data,
- void *per_buffer_data)
-{
- struct pg_prewarm_read_stream_private *p = callback_private_data;
-
- if (p->blocknum <= p->last_block)
- return p->blocknum++;
-
- return InvalidBlockNumber;
-}
-
/*
* pg_prewarm(regclass, mode text, fork text,
* first_block int8, last_block int8)
@@ -203,7 +184,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
}
else if (ptype == PREWARM_BUFFER)
{
- struct pg_prewarm_read_stream_private p;
+ BlockRangeReadStreamPrivate p;
ReadStream *stream;
/*
@@ -211,14 +192,14 @@ pg_prewarm(PG_FUNCTION_ARGS)
*/
/* Set up the private state for our streaming buffer read callback. */
- p.blocknum = first_block;
- p.last_block = last_block;
+ p.current_blocknum = first_block;
+ p.last_exclusive = last_block + 1;
stream = read_stream_begin_relation(READ_STREAM_FULL,
NULL,
rel,
forkNumber,
- pg_prewarm_read_stream_next_block,
+ block_range_read_stream_cb,
&p,
0);
--
2.45.2