Adjust GiST error messages to conform to message style guidelines.
This commit is contained in:
parent
a453951dd9
commit
08817bdb76
|
@ -8,7 +8,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/gist/gistscan.c,v 1.59 2005/06/27 12:45:22 teodor Exp $
|
* $PostgreSQL: pgsql/src/backend/access/gist/gistscan.c,v 1.60 2005/09/22 18:49:45 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -380,7 +380,7 @@ gistadjone(IndexScanDesc scan,
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
adjustiptr(IndexScanDesc scan,
|
adjustiptr(IndexScanDesc scan,
|
||||||
ItemPointer iptr, GISTSearchStack *stk,
|
ItemPointer iptr, GISTSearchStack *stk,
|
||||||
int op,
|
int op,
|
||||||
BlockNumber blkno,
|
BlockNumber blkno,
|
||||||
OffsetNumber offnum, XLogRecPtr newlsn, XLogRecPtr oldlsn)
|
OffsetNumber offnum, XLogRecPtr newlsn, XLogRecPtr oldlsn)
|
||||||
|
@ -422,7 +422,8 @@ adjustiptr(IndexScanDesc scan,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
elog(ERROR, "Bad operation in GiST scan adjust: %d", op);
|
elog(ERROR, "unrecognized GiST scan adjust operation: %d",
|
||||||
|
op);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,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/gist/gistutil.c,v 1.5 2005/06/30 17:52:14 teodor Exp $
|
* $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.6 2005/09/22 18:49:45 tgl Exp $
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
@ -71,7 +71,7 @@ gistfillbuffer(Relation r, Page page, IndexTuple *itup,
|
||||||
l = PageAddItem(page, (Item) itup[i], IndexTupleSize(itup[i]),
|
l = PageAddItem(page, (Item) itup[i], IndexTupleSize(itup[i]),
|
||||||
off, LP_USED);
|
off, LP_USED);
|
||||||
if (l == InvalidOffsetNumber)
|
if (l == InvalidOffsetNumber)
|
||||||
elog(ERROR, "gistfillbuffer: failed to add index item to \"%s\"",
|
elog(ERROR, "failed to add item to index page in \"%s\"",
|
||||||
RelationGetRelationName(r));
|
RelationGetRelationName(r));
|
||||||
off++;
|
off++;
|
||||||
}
|
}
|
||||||
|
@ -645,8 +645,9 @@ gistchoose(Relation r, Page p, IndexTuple it, /* it has compressed entry */
|
||||||
IndexTuple itup = (IndexTuple) PageGetItem(p, PageGetItemId(p, i));
|
IndexTuple itup = (IndexTuple) PageGetItem(p, PageGetItemId(p, i));
|
||||||
|
|
||||||
if ( !GistPageIsLeaf(p) && GistTupleIsInvalid(itup) ) {
|
if ( !GistPageIsLeaf(p) && GistTupleIsInvalid(itup) ) {
|
||||||
elog(LOG, "It's desirable to vacuum or reindex GiST index '%s' due to crash recovery",
|
ereport(LOG,
|
||||||
RelationGetRelationName(r));
|
(errmsg("index \"%s\" needs VACUUM or REINDEX to finish crash recovery",
|
||||||
|
RelationGetRelationName(r))));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,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/gist/gistvacuum.c,v 1.7 2005/09/02 19:02:19 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.8 2005/09/22 18:49:45 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -78,7 +78,8 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
|
||||||
needchildunion = (GistTupleIsInvalid(idxtuple)) ? true : false;
|
needchildunion = (GistTupleIsInvalid(idxtuple)) ? true : false;
|
||||||
|
|
||||||
if ( needchildunion )
|
if ( needchildunion )
|
||||||
elog(DEBUG2,"gistVacuumUpdate: Need union for block %u", ItemPointerGetBlockNumber(&(idxtuple->t_tid)));
|
elog(DEBUG2, "gistVacuumUpdate: need union for block %u",
|
||||||
|
ItemPointerGetBlockNumber(&(idxtuple->t_tid)));
|
||||||
|
|
||||||
chldtuple = gistVacuumUpdate( gv, ItemPointerGetBlockNumber(&(idxtuple->t_tid)),
|
chldtuple = gistVacuumUpdate( gv, ItemPointerGetBlockNumber(&(idxtuple->t_tid)),
|
||||||
needchildunion );
|
needchildunion );
|
||||||
|
@ -309,10 +310,10 @@ gistvacuumcleanup(PG_FUNCTION_ARGS) {
|
||||||
}
|
}
|
||||||
freeGISTstate(&(gv.giststate));
|
freeGISTstate(&(gv.giststate));
|
||||||
MemoryContextDelete(gv.opCtx);
|
MemoryContextDelete(gv.opCtx);
|
||||||
} else if (needFullVacuum) {
|
} else if (needFullVacuum)
|
||||||
elog(NOTICE,"It's desirable to vacuum full or reindex GiST index '%s' due to crash recovery",
|
ereport(NOTICE,
|
||||||
RelationGetRelationName(rel));
|
(errmsg("index \"%s\" needs VACUUM FULL or REINDEX to finish crash recovery",
|
||||||
}
|
RelationGetRelationName(rel))));
|
||||||
|
|
||||||
needFullVacuum = false;
|
needFullVacuum = false;
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,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/gist/gistxlog.c,v 1.7 2005/07/01 13:18:17 teodor Exp $
|
* $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.8 2005/09/22 18:49:45 tgl Exp $
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
@ -162,7 +162,7 @@ gistRedoEntryUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot) {
|
||||||
return;
|
return;
|
||||||
buffer = XLogReadBuffer(false, reln, xlrec.data->blkno);
|
buffer = XLogReadBuffer(false, reln, xlrec.data->blkno);
|
||||||
if (!BufferIsValid(buffer))
|
if (!BufferIsValid(buffer))
|
||||||
elog(PANIC, "gistRedoEntryUpdateRecord: block %u unfound", xlrec.data->blkno);
|
elog(PANIC, "block %u unfound", xlrec.data->blkno);
|
||||||
page = (Page) BufferGetPage(buffer);
|
page = (Page) BufferGetPage(buffer);
|
||||||
|
|
||||||
if ( isnewroot ) {
|
if ( isnewroot ) {
|
||||||
|
@ -173,7 +173,7 @@ gistRedoEntryUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( PageIsNew((PageHeader) page) )
|
if ( PageIsNew((PageHeader) page) )
|
||||||
elog(PANIC, "gistRedoEntryUpdateRecord: uninitialized page blkno %u", xlrec.data->blkno);
|
elog(PANIC, "uninitialized page %u", xlrec.data->blkno);
|
||||||
if (XLByteLE(lsn, PageGetLSN(page))) {
|
if (XLByteLE(lsn, PageGetLSN(page))) {
|
||||||
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
|
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
|
||||||
ReleaseBuffer(buffer);
|
ReleaseBuffer(buffer);
|
||||||
|
@ -270,11 +270,10 @@ gistRedoPageSplitRecord(XLogRecPtr lsn, XLogRecord *record ) {
|
||||||
/* first of all wee need get F_LEAF flag from original page */
|
/* first of all wee need get F_LEAF flag from original page */
|
||||||
buffer = XLogReadBuffer( false, reln, xlrec.data->origblkno);
|
buffer = XLogReadBuffer( false, reln, xlrec.data->origblkno);
|
||||||
if (!BufferIsValid(buffer))
|
if (!BufferIsValid(buffer))
|
||||||
elog(PANIC, "gistRedoEntryUpdateRecord: block %u unfound", xlrec.data->origblkno);
|
elog(PANIC, "block %u unfound", xlrec.data->origblkno);
|
||||||
page = (Page) BufferGetPage(buffer);
|
page = (Page) BufferGetPage(buffer);
|
||||||
if ( PageIsNew((PageHeader) page) )
|
if ( PageIsNew((PageHeader) page) )
|
||||||
elog(PANIC, "gistRedoEntryUpdateRecord: uninitialized page blkno %u",
|
elog(PANIC, "uninitialized page %u", xlrec.data->origblkno);
|
||||||
xlrec.data->origblkno);
|
|
||||||
|
|
||||||
flags = ( GistPageIsLeaf(page) ) ? F_LEAF : 0;
|
flags = ( GistPageIsLeaf(page) ) ? F_LEAF : 0;
|
||||||
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
|
LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
|
||||||
|
@ -287,7 +286,7 @@ gistRedoPageSplitRecord(XLogRecPtr lsn, XLogRecord *record ) {
|
||||||
|
|
||||||
buffer = XLogReadBuffer( !isorigpage, reln, newpage->header->blkno);
|
buffer = XLogReadBuffer( !isorigpage, reln, newpage->header->blkno);
|
||||||
if (!BufferIsValid(buffer))
|
if (!BufferIsValid(buffer))
|
||||||
elog(PANIC, "gistRedoEntryUpdateRecord: block %u unfound", newpage->header->blkno);
|
elog(PANIC, "block %u unfound", newpage->header->blkno);
|
||||||
page = (Page) BufferGetPage(buffer);
|
page = (Page) BufferGetPage(buffer);
|
||||||
|
|
||||||
if (XLByteLE(lsn, PageGetLSN(page))) {
|
if (XLByteLE(lsn, PageGetLSN(page))) {
|
||||||
|
@ -330,7 +329,7 @@ gistRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record) {
|
||||||
return;
|
return;
|
||||||
buffer = XLogReadBuffer( true, reln, GIST_ROOT_BLKNO);
|
buffer = XLogReadBuffer( true, reln, GIST_ROOT_BLKNO);
|
||||||
if (!BufferIsValid(buffer))
|
if (!BufferIsValid(buffer))
|
||||||
elog(PANIC, "gistRedoCreateIndex: block unfound");
|
elog(PANIC, "root block unfound");
|
||||||
page = (Page) BufferGetPage(buffer);
|
page = (Page) BufferGetPage(buffer);
|
||||||
|
|
||||||
if (!PageIsNew((PageHeader) page) && XLByteLE(lsn, PageGetLSN(page))) {
|
if (!PageIsNew((PageHeader) page) && XLByteLE(lsn, PageGetLSN(page))) {
|
||||||
|
@ -450,6 +449,7 @@ gist_desc(char *buf, uint8 xl_info, char *rec)
|
||||||
((gistxlogInsertComplete*)rec)->node.spcNode,
|
((gistxlogInsertComplete*)rec)->node.spcNode,
|
||||||
((gistxlogInsertComplete*)rec)->node.dbNode,
|
((gistxlogInsertComplete*)rec)->node.dbNode,
|
||||||
((gistxlogInsertComplete*)rec)->node.relNode);
|
((gistxlogInsertComplete*)rec)->node.relNode);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
elog(PANIC, "gist_desc: unknown op code %u", info);
|
elog(PANIC, "gist_desc: unknown op code %u", info);
|
||||||
}
|
}
|
||||||
|
@ -474,9 +474,9 @@ static Buffer
|
||||||
gistXLogReadAndLockBuffer( Relation r, BlockNumber blkno ) {
|
gistXLogReadAndLockBuffer( Relation r, BlockNumber blkno ) {
|
||||||
Buffer buffer = XLogReadBuffer( false, r, blkno );
|
Buffer buffer = XLogReadBuffer( false, r, blkno );
|
||||||
if (!BufferIsValid(buffer))
|
if (!BufferIsValid(buffer))
|
||||||
elog(PANIC, "gistXLogReadAndLockBuffer: block %u unfound", blkno);
|
elog(PANIC, "block %u unfound", blkno);
|
||||||
if ( PageIsNew( (PageHeader)(BufferGetPage(buffer)) ) )
|
if ( PageIsNew( (PageHeader)(BufferGetPage(buffer)) ) )
|
||||||
elog(PANIC, "gistXLogReadAndLockBuffer: uninitialized page blkno %u", blkno);
|
elog(PANIC, "uninitialized page %u", blkno);
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
@ -507,7 +507,7 @@ gixtxlogFindPath( Relation index, gistIncompleteInsert *insert ) {
|
||||||
ptr = ptr->parent;
|
ptr = ptr->parent;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
elog(LOG, "gixtxlogFindPath: lost parent for block %u", insert->origblkno);
|
elog(LOG, "lost parent for block %u", insert->origblkno);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -545,7 +545,7 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||||
Page page;
|
Page page;
|
||||||
|
|
||||||
if (!BufferIsValid(buffer))
|
if (!BufferIsValid(buffer))
|
||||||
elog(PANIC, "gistContinueInsert: root block unfound");
|
elog(PANIC, "root block unfound");
|
||||||
|
|
||||||
page = BufferGetPage(buffer);
|
page = BufferGetPage(buffer);
|
||||||
if (XLByteLE(insert->lsn, PageGetLSN(page))) {
|
if (XLByteLE(insert->lsn, PageGetLSN(page))) {
|
||||||
|
@ -580,10 +580,10 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||||
numbuffer=1;
|
numbuffer=1;
|
||||||
buffers[numbuffer-1] = XLogReadBuffer(false, index, insert->path[i]);
|
buffers[numbuffer-1] = XLogReadBuffer(false, index, insert->path[i]);
|
||||||
if (!BufferIsValid(buffers[numbuffer-1]))
|
if (!BufferIsValid(buffers[numbuffer-1]))
|
||||||
elog(PANIC, "gistContinueInsert: block %u unfound", insert->path[i]);
|
elog(PANIC, "block %u unfound", insert->path[i]);
|
||||||
pages[numbuffer-1] = BufferGetPage( buffers[numbuffer-1] );
|
pages[numbuffer-1] = BufferGetPage( buffers[numbuffer-1] );
|
||||||
if ( PageIsNew((PageHeader)(pages[numbuffer-1])) )
|
if ( PageIsNew((PageHeader)(pages[numbuffer-1])) )
|
||||||
elog(PANIC, "gistContinueInsert: uninitialized page blkno %u", insert->path[i]);
|
elog(PANIC, "uninitialized page %u", insert->path[i]);
|
||||||
|
|
||||||
if (XLByteLE(insert->lsn, PageGetLSN(pages[numbuffer-1]))) {
|
if (XLByteLE(insert->lsn, PageGetLSN(pages[numbuffer-1]))) {
|
||||||
LockBuffer(buffers[numbuffer-1], BUFFER_LOCK_UNLOCK);
|
LockBuffer(buffers[numbuffer-1], BUFFER_LOCK_UNLOCK);
|
||||||
|
@ -614,7 +614,7 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||||
/* no space left on page, so we should split */
|
/* no space left on page, so we should split */
|
||||||
buffers[numbuffer] = XLogReadBuffer(true, index, P_NEW);
|
buffers[numbuffer] = XLogReadBuffer(true, index, P_NEW);
|
||||||
if (!BufferIsValid(buffers[numbuffer]))
|
if (!BufferIsValid(buffers[numbuffer]))
|
||||||
elog(PANIC, "gistContinueInsert: can't create new block");
|
elog(PANIC, "could not obtain new block");
|
||||||
GISTInitBuffer(buffers[numbuffer], 0);
|
GISTInitBuffer(buffers[numbuffer], 0);
|
||||||
pages[numbuffer] = BufferGetPage( buffers[numbuffer] );
|
pages[numbuffer] = BufferGetPage( buffers[numbuffer] );
|
||||||
gistfillbuffer( index, pages[numbuffer], itup, lenitup, FirstOffsetNumber );
|
gistfillbuffer( index, pages[numbuffer], itup, lenitup, FirstOffsetNumber );
|
||||||
|
@ -628,13 +628,13 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||||
|
|
||||||
/* sanity check */
|
/* sanity check */
|
||||||
if ( i+1 != insert->pathlen )
|
if ( i+1 != insert->pathlen )
|
||||||
elog(PANIC,"gistContinueInsert: can't restore index '%s'",
|
elog(PANIC,"unexpected pathlen in index \"%s\"",
|
||||||
RelationGetRelationName( index ));
|
RelationGetRelationName( index ));
|
||||||
|
|
||||||
/* fill new page */
|
/* fill new page */
|
||||||
buffers[numbuffer] = XLogReadBuffer(true, index, P_NEW);
|
buffers[numbuffer] = XLogReadBuffer(true, index, P_NEW);
|
||||||
if (!BufferIsValid(buffers[numbuffer]))
|
if (!BufferIsValid(buffers[numbuffer]))
|
||||||
elog(PANIC, "gistContinueInsert: can't create new block");
|
elog(PANIC, "could not obtain new block");
|
||||||
GISTInitBuffer(buffers[numbuffer], 0);
|
GISTInitBuffer(buffers[numbuffer], 0);
|
||||||
pages[numbuffer] = BufferGetPage( buffers[numbuffer] );
|
pages[numbuffer] = BufferGetPage( buffers[numbuffer] );
|
||||||
gistfillbuffer(index, pages[numbuffer], parentitup, pituplen, FirstOffsetNumber);
|
gistfillbuffer(index, pages[numbuffer], parentitup, pituplen, FirstOffsetNumber);
|
||||||
|
@ -644,12 +644,12 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||||
GISTInitBuffer(buffers[0], 0);
|
GISTInitBuffer(buffers[0], 0);
|
||||||
for(j=1;j<numbuffer;j++) {
|
for(j=1;j<numbuffer;j++) {
|
||||||
IndexTuple tuple = gist_form_invalid_tuple( BufferGetBlockNumber( buffers[j] ) );
|
IndexTuple tuple = gist_form_invalid_tuple( BufferGetBlockNumber( buffers[j] ) );
|
||||||
if ( InvalidOffsetNumber == PageAddItem(pages[0],
|
if (PageAddItem(pages[0],
|
||||||
(Item)tuple,
|
(Item)tuple,
|
||||||
IndexTupleSize( tuple ),
|
IndexTupleSize( tuple ),
|
||||||
(OffsetNumber)j,
|
(OffsetNumber)j,
|
||||||
LP_USED) )
|
LP_USED) == InvalidOffsetNumber)
|
||||||
elog( PANIC,"gistContinueInsert: can't restore index '%s'",
|
elog(PANIC, "failed to add item to index page in \"%s\"",
|
||||||
RelationGetRelationName( index ));
|
RelationGetRelationName( index ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -668,8 +668,10 @@ gistContinueInsert(gistIncompleteInsert *insert) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
elog(LOG,"Detected incomplete insert into GiST index %u/%u/%u; It's desirable to vacuum or reindex index",
|
ereport(LOG,
|
||||||
insert->node.spcNode, insert->node.dbNode, insert->node.relNode);
|
(errmsg("index %u/%u/%u needs VACUUM or REINDEX to finish crash recovery",
|
||||||
|
insert->node.spcNode, insert->node.dbNode, insert->node.relNode),
|
||||||
|
errdetail("Incomplete insertion detected during crash replay.")));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue