mirror of
https://github.com/postgres/postgres.git
synced 2025-06-10 09:21:54 +03:00
Add hints to cases where indexes fail because of values that are too long.
This commit is contained in:
parent
8bbf227ad7
commit
237be3cc29
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/access/hash/hashinsert.c,v 1.36 2005/03/21 01:23:57 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/hash/hashinsert.c,v 1.37 2005/08/10 21:36:45 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -88,7 +88,8 @@ _hash_doinsert(Relation rel, HashItem hitem)
|
|||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("index row size %lu exceeds hash maximum %lu",
|
errmsg("index row size %lu exceeds hash maximum %lu",
|
||||||
(unsigned long) itemsz,
|
(unsigned long) itemsz,
|
||||||
(unsigned long) HashMaxItemSize((Page) metap))));
|
(unsigned long) HashMaxItemSize((Page) metap)),
|
||||||
|
errhint("Values larger than a buffer page cannot be indexed.")));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compute the target bucket number, and convert to block number.
|
* Compute the target bucket number, and convert to block number.
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.121 2005/06/06 20:22:57 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.122 2005/08/10 21:36:45 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -392,7 +392,10 @@ _bt_insertonpg(Relation rel,
|
|||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("index row size %lu exceeds btree maximum, %lu",
|
errmsg("index row size %lu exceeds btree maximum, %lu",
|
||||||
(unsigned long) itemsz,
|
(unsigned long) itemsz,
|
||||||
(unsigned long) BTMaxItemSize(page))));
|
(unsigned long) BTMaxItemSize(page)),
|
||||||
|
errhint("Values larger than 1/3 of a buffer page cannot be indexed\n"
|
||||||
|
"Consider a separate column containing an MD5 hash of the value\n"
|
||||||
|
"or use full text indexing.")));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determine exactly where new item will go.
|
* Determine exactly where new item will go.
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsort.c,v 1.91 2005/06/06 20:22:57 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtsort.c,v 1.92 2005/08/10 21:36:45 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -498,7 +498,10 @@ _bt_buildadd(BTWriteState *wstate, BTPageState *state, BTItem bti)
|
|||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("index row size %lu exceeds btree maximum, %lu",
|
errmsg("index row size %lu exceeds btree maximum, %lu",
|
||||||
(unsigned long) btisz,
|
(unsigned long) btisz,
|
||||||
(unsigned long) BTMaxItemSize(npage))));
|
(unsigned long) BTMaxItemSize(npage)),
|
||||||
|
errhint("Values larger than 1/3 of a buffer page cannot be indexed\n"
|
||||||
|
"Consider a separate column containing an MD5 hash of the value\n"
|
||||||
|
"or use full text indexing.")));
|
||||||
|
|
||||||
if (pgspc < btisz || pgspc < state->btps_full)
|
if (pgspc < btisz || pgspc < state->btps_full)
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/access/rtree/rtree.c,v 1.90 2005/06/06 17:01:22 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/rtree/rtree.c,v 1.91 2005/08/10 21:36:46 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -733,7 +733,8 @@ rtpicksplit(Relation r,
|
|||||||
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
(errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
|
||||||
errmsg("index row size %lu exceeds rtree maximum, %lu",
|
errmsg("index row size %lu exceeds rtree maximum, %lu",
|
||||||
(unsigned long) newitemsz,
|
(unsigned long) newitemsz,
|
||||||
(unsigned long) RTPageAvailSpace)));
|
(unsigned long) RTPageAvailSpace),
|
||||||
|
errhint("Values larger than a buffer page cannot be indexed.")));
|
||||||
|
|
||||||
maxoff = PageGetMaxOffsetNumber(page);
|
maxoff = PageGetMaxOffsetNumber(page);
|
||||||
newitemoff = OffsetNumberNext(maxoff); /* phony index for new
|
newitemoff = OffsetNumberNext(maxoff); /* phony index for new
|
||||||
|
Loading…
x
Reference in New Issue
Block a user