mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	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:
		@@ -266,11 +266,9 @@ ginCompressPostingList(const ItemPointer ipd, int nipd, int maxsize,
 | 
			
		||||
	{
 | 
			
		||||
		int			ndecoded;
 | 
			
		||||
		ItemPointer tmp = ginPostingListDecode(result, &ndecoded);
 | 
			
		||||
		int			i;
 | 
			
		||||
 | 
			
		||||
		Assert(ndecoded == totalpacked);
 | 
			
		||||
		for (i = 0; i < ndecoded; i++)
 | 
			
		||||
			Assert(memcmp(&tmp[i], &ipd[i], sizeof(ItemPointerData)) == 0);
 | 
			
		||||
		Assert(memcmp(tmp, ipd, ndecoded * sizeof(ItemPointerData)) == 0);
 | 
			
		||||
		pfree(tmp);
 | 
			
		||||
	}
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user