This is an automated email from the ASF dual-hosted git repository.
maxyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
The following commit(s) were added to refs/heads/main by this push:
new dbc7a710ea Refactor internals to support pageinspect (#850)
dbc7a710ea is described below
commit dbc7a710ea61c372d4a1b7f2bc6b3e33c505cb05
Author: reshke <[email protected]>
AuthorDate: Thu Jan 9 11:31:13 2025 +0500
Refactor internals to support pageinspect (#850)
In late december 2024 I was busy supporting pageinspect extension for
AO/AOCS relations in out GP6 fork.
Here is prelimitary patch for supporting same in CBDB.
---
src/backend/access/appendonly/appendonlyam.c | 9 +++++----
src/backend/cdb/cdbvarblock.c | 4 ++++
src/include/cdb/cdbappendonlyam.h | 14 ++++++++++++++
3 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/src/backend/access/appendonly/appendonlyam.c
b/src/backend/access/appendonly/appendonlyam.c
index ce404aa45f..6fec38ef38 100755
--- a/src/backend/access/appendonly/appendonlyam.c
+++ b/src/backend/access/appendonly/appendonlyam.c
@@ -137,7 +137,7 @@ initscan(AppendOnlyScanDesc scan, ScanKey key)
/*
* Open the next file segment to scan and allocate all resources needed for it.
*/
-static bool
+bool
SetNextFileSegForRead(AppendOnlyScanDesc scan)
{
Relation reln = scan->aos_rd;
@@ -470,7 +470,7 @@ CloseWritableFileSeg(AppendOnlyInsertDesc aoInsertDesc)
/*
------------------------------------------------------------------------------
*/
-static void
+void
AppendOnlyExecutorReadBlock_GetContents(AppendOnlyExecutorReadBlock
*executorReadBlock)
{
VarBlockCheckError varBlockCheckError;
@@ -669,7 +669,7 @@
AppendOnlyExecutorReadBlock_GetContents(AppendOnlyExecutorReadBlock *executorRea
}
}
-static bool
+bool
AppendOnlyExecutorReadBlock_GetBlockInfo(AppendOnlyStorageRead *storageRead,
AppendOnlyExecutorReadBlock *executorReadBlock)
{
@@ -1011,7 +1011,8 @@
AppendOnlyExecutorReadBlock_ProcessTuple(AppendOnlyExecutorReadBlock *executorRe
return valid;
}
-static bool
+
+bool
AppendOnlyExecutorReadBlock_ScanNextTuple(AppendOnlyExecutorReadBlock
*executorReadBlock,
int nkeys,
ScanKey key,
diff --git a/src/backend/cdb/cdbvarblock.c b/src/backend/cdb/cdbvarblock.c
index db7822dd47..40a3d75bf8 100644
--- a/src/backend/cdb/cdbvarblock.c
+++ b/src/backend/cdb/cdbvarblock.c
@@ -755,6 +755,7 @@ VarBlockGetItemPtrAndLen(
VarBlockByteOffset offset;
Assert(varBlockReader != NULL);
+ Assert(varBlockReader->header);
header = varBlockReader->header;
buffer = (uint8 *) header;
@@ -804,6 +805,7 @@ VarBlockReaderGetNextItemPtr(
Assert(varBlockReader != NULL);
Assert(itemLen != NULL);
+ Assert(varBlockReader->header);
if (varBlockReader->nextIndex >=
VarBlockGet_itemCount(varBlockReader->header))
@@ -828,6 +830,7 @@ VarBlockReaderItemCount(
VarBlockReader *varBlockReader)
{
Assert(varBlockReader != NULL);
+ Assert(varBlockReader->header != NULL);
return VarBlockGet_itemCount(varBlockReader->header);
}
@@ -844,6 +847,7 @@ VarBlockReaderGetItemPtr(
uint8 *nextItemPtr;
Assert(varBlockReader != NULL);
+ Assert(varBlockReader->header);
Assert(itemIndex >= 0);
Assert(itemIndex < VarBlockGet_itemCount(varBlockReader->header));
diff --git a/src/include/cdb/cdbappendonlyam.h
b/src/include/cdb/cdbappendonlyam.h
index 8cd5bee658..262b934156 100644
--- a/src/include/cdb/cdbappendonlyam.h
+++ b/src/include/cdb/cdbappendonlyam.h
@@ -481,4 +481,18 @@ extern ExprState*
appendonly_predicate_pushdown_prepare(AppendOnlyScanDesc scan,
ExprState *qual,
ExprContext *ecxt);
+extern bool AppendOnlyExecutorReadBlock_GetBlockInfo(AppendOnlyStorageRead
*storageRead,
+
AppendOnlyExecutorReadBlock *executorReadBlock);
+
+extern void AppendOnlyStorageRead_CloseFile(AppendOnlyStorageRead
*storageRead);
+
+extern bool SetNextFileSegForRead(AppendOnlyScanDesc scan);
+
+extern bool
AppendOnlyExecutorReadBlock_ScanNextTuple(AppendOnlyExecutorReadBlock
*executorReadBlock,
+
int nkeys,
+
ScanKey key,
+
TupleTableSlot *slot);
+
+extern void
AppendOnlyExecutorReadBlock_GetContents(AppendOnlyExecutorReadBlock
*executorReadBlock);
+
#endif /* CDBAPPENDONLYAM_H */
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]