Skip to content
Snippets Groups Projects
Commit 7ea9b997 authored by Tom Lane's avatar Tom Lane
Browse files

Remove unnecessary coziness of GIN code with datum copying. Now that

space is tracked via GetMemoryChunkSpace, there's really no advantage
to duplicating datumCopy's innards here.  This is one bit of my toast
indirection patch that should go in anyway.
parent 4a8d573c
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gin/ginbulk.c,v 1.11 2008/01/01 19:45:46 momjian Exp $
* $PostgreSQL: pgsql/src/backend/access/gin/ginbulk.c,v 1.12 2008/06/29 21:04:01 tgl Exp $
*-------------------------------------------------------------------------
*/
......@@ -78,8 +78,8 @@ ginInsertData(BuildAccumulator *accum, EntryAccumulator *entry, ItemPointer heap
}
/*
* This is basically the same as datumCopy(), but we duplicate some code
* to avoid computing the datum size twice.
* This is basically the same as datumCopy(), but modified to count
* palloc'd space in accum.
*/
static Datum
getDatumCopy(BuildAccumulator *accum, Datum value)
......@@ -91,16 +91,8 @@ getDatumCopy(BuildAccumulator *accum, Datum value)
res = value;
else
{
Size realSize;
char *s;
realSize = datumGetSize(value, false, att[0]->attlen);
s = (char *) palloc(realSize);
accum->allocatedMemory += GetMemoryChunkSpace(s);
memcpy(s, DatumGetPointer(value), realSize);
res = PointerGetDatum(s);
res = datumCopy(value, false, att[0]->attlen);
accum->allocatedMemory += GetMemoryChunkSpace(DatumGetPointer(res));
}
return res;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment