v3-0002-pg_prewarm-Use-generic-use-read-stream-struct-and.patch
application/x-patch
Filename: v3-0002-pg_prewarm-Use-generic-use-read-stream-struct-and.patch
Type: application/x-patch
Part: 1
Patch
Format: format-patch
Series: patch v3-0002
Subject: pg_prewarm: Use generic-use read stream struct and callback
| File | + | − |
|---|---|---|
| contrib/pg_prewarm/pg_prewarm.c | 3 | 22 |
From 01de5ff954f7db6a749ebfc0b1281ed010b5e8f9 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 v3 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 | 25 +++----------------------
1 file changed, 3 insertions(+), 22 deletions(-)
diff --git a/contrib/pg_prewarm/pg_prewarm.c b/contrib/pg_prewarm/pg_prewarm.c
index 5c859e983c5..889639a09a3 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;
/*
@@ -212,13 +193,13 @@ 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.nblocks = 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