Simplify/speed up assertion cross-check in ginCompressPostingList().
I noticed while testing some other stuff that the CHECK_ENCODING_ROUNDTRIP logic in ginCompressPostingList could account for over 50% of the runtime of an INSERT with a GIN index. While that's not relevant to production performance, it's still kind of annoying in a debug build. Replacing the loop around short memcmp's with one long memcmp works just as well and is significantly faster, at least on my machine.
This commit is contained in:
parent
7e39b968f1
commit
ea7dace2aa
@ -266,11 +266,9 @@ ginCompressPostingList(const ItemPointer ipd, int nipd, int maxsize,
|
|||||||
{
|
{
|
||||||
int ndecoded;
|
int ndecoded;
|
||||||
ItemPointer tmp = ginPostingListDecode(result, &ndecoded);
|
ItemPointer tmp = ginPostingListDecode(result, &ndecoded);
|
||||||
int i;
|
|
||||||
|
|
||||||
Assert(ndecoded == totalpacked);
|
Assert(ndecoded == totalpacked);
|
||||||
for (i = 0; i < ndecoded; i++)
|
Assert(memcmp(tmp, ipd, ndecoded * sizeof(ItemPointerData)) == 0);
|
||||||
Assert(memcmp(&tmp[i], &ipd[i], sizeof(ItemPointerData)) == 0);
|
|
||||||
pfree(tmp);
|
pfree(tmp);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user