mirror of
https://github.com/postgres/postgres.git
synced 2025-08-24 09:27:52 +03:00
Make sure that GIN fast-insert and regular code paths enforce the same
tuple size limit. Improve the error message for index-tuple-too-large so that it includes the actual size, the limit, and the index name. Sync with the btree occurrences of the same error. Back-patch to 8.4 because it appears that the out-of-sync problem is occurring in the field. Teodor and Tom
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* Copyright (c) 2006-2009, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/access/gin.h,v 1.34 2009/06/11 14:49:08 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/include/access/gin.h,v 1.35 2009/10/02 21:14:04 tgl Exp $
|
||||
*--------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef GIN_H
|
||||
@@ -165,8 +165,8 @@ typedef struct
|
||||
#define GinGetPosting(itup) ( (ItemPointer)(( ((char*)(itup)) + SHORTALIGN(GinGetOrigSizePosting(itup)) )) )
|
||||
|
||||
#define GinMaxItemSize \
|
||||
((BLCKSZ - SizeOfPageHeaderData - \
|
||||
MAXALIGN(sizeof(GinPageOpaqueData))) / 3 - sizeof(ItemIdData))
|
||||
MAXALIGN_DOWN(((BLCKSZ - SizeOfPageHeaderData - \
|
||||
MAXALIGN(sizeof(GinPageOpaqueData))) / 3 - sizeof(ItemIdData)))
|
||||
|
||||
|
||||
/*
|
||||
@@ -434,8 +434,9 @@ extern void ginInsertValue(GinBtree btree, GinBtreeStack *stack);
|
||||
extern void findParents(GinBtree btree, GinBtreeStack *stack, BlockNumber rootBlkno);
|
||||
|
||||
/* ginentrypage.c */
|
||||
extern IndexTuple GinFormTuple(GinState *ginstate, OffsetNumber attnum, Datum key,
|
||||
ItemPointerData *ipd, uint32 nipd);
|
||||
extern IndexTuple GinFormTuple(Relation index, GinState *ginstate,
|
||||
OffsetNumber attnum, Datum key,
|
||||
ItemPointerData *ipd, uint32 nipd, bool errorTooBig);
|
||||
extern void GinShortenTuple(IndexTuple itup, uint32 nipd);
|
||||
extern void prepareEntryScan(GinBtree btree, Relation index, OffsetNumber attnum,
|
||||
Datum value, GinState *ginstate);
|
||||
|
Reference in New Issue
Block a user