mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Pass ItemPointer not HeapTuple to IndexBuildCallback.
Not all AMs use HeapTuples internally, making it inconvenient to pass a HeapTuple. As the index callbacks really only need the TID, not the full tuple, modify callback to only take ItemPointer. Author: Ashwin Agrawal Reviewed-By: Andres Freund Discussion: https://postgr.es/m/CALfoeis6=8ehuR=VNtHvj3z16cYfCwPdTcpaxU+sfSUJ5QgR3g@mail.gmail.com
This commit is contained in:
@ -276,7 +276,7 @@ ginHeapTupleBulkInsert(GinBuildState *buildstate, OffsetNumber attnum,
|
||||
}
|
||||
|
||||
static void
|
||||
ginBuildCallback(Relation index, HeapTuple htup, Datum *values,
|
||||
ginBuildCallback(Relation index, ItemPointer tid, Datum *values,
|
||||
bool *isnull, bool tupleIsAlive, void *state)
|
||||
{
|
||||
GinBuildState *buildstate = (GinBuildState *) state;
|
||||
@ -287,8 +287,7 @@ ginBuildCallback(Relation index, HeapTuple htup, Datum *values,
|
||||
|
||||
for (i = 0; i < buildstate->ginstate.origTupdesc->natts; i++)
|
||||
ginHeapTupleBulkInsert(buildstate, (OffsetNumber) (i + 1),
|
||||
values[i], isnull[i],
|
||||
&htup->t_self);
|
||||
values[i], isnull[i], tid);
|
||||
|
||||
/* If we've maxed out our available memory, dump everything to the index */
|
||||
if (buildstate->accum.allocatedMemory >= (Size) maintenance_work_mem * 1024L)
|
||||
|
Reference in New Issue
Block a user