Index: src/backend/access/gist/gist.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/gist/gist.c,v retrieving revision 1.88 diff -c -r1.88 gist.c *** src/backend/access/gist/gist.c 2002/02/11 22:41:59 1.88 --- src/backend/access/gist/gist.c 2002/02/19 04:54:53 *************** *** 1953,1965 **** void gist_redo(XLogRecPtr lsn, XLogRecord *record) { ! elog(STOP, "gist_redo: unimplemented"); } void gist_undo(XLogRecPtr lsn, XLogRecord *record) { ! elog(STOP, "gist_undo: unimplemented"); } void --- 1953,1965 ---- void gist_redo(XLogRecPtr lsn, XLogRecord *record) { ! elog(CRASH, "gist_redo: unimplemented"); } void gist_undo(XLogRecPtr lsn, XLogRecord *record) { ! elog(CRASH, "gist_undo: unimplemented"); } void Index: src/backend/access/hash/hash.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/hash/hash.c,v retrieving revision 1.53 diff -c -r1.53 hash.c *** src/backend/access/hash/hash.c 2001/10/25 05:49:20 1.53 --- src/backend/access/hash/hash.c 2002/02/19 04:54:53 *************** *** 468,480 **** void hash_redo(XLogRecPtr lsn, XLogRecord *record) { ! elog(STOP, "hash_redo: unimplemented"); } void hash_undo(XLogRecPtr lsn, XLogRecord *record) { ! elog(STOP, "hash_undo: unimplemented"); } void --- 468,480 ---- void hash_redo(XLogRecPtr lsn, XLogRecord *record) { ! elog(CRASH, "hash_redo: unimplemented"); } void hash_undo(XLogRecPtr lsn, XLogRecord *record) { ! elog(CRASH, "hash_undo: unimplemented"); } void Index: src/backend/access/heap/heapam.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v retrieving revision 1.129 diff -c -r1.129 heapam.c *** src/backend/access/heap/heapam.c 2002/01/15 22:14:17 1.129 --- src/backend/access/heap/heapam.c 2002/02/19 04:54:55 *************** *** 1958,1968 **** buffer = XLogReadBuffer(false, reln, xlrec->block); if (!BufferIsValid(buffer)) ! elog(STOP, "heap_clean_redo: no block"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "heap_clean_redo: uninitialized page"); if (XLByteLE(lsn, PageGetLSN(page))) { --- 1958,1968 ---- buffer = XLogReadBuffer(false, reln, xlrec->block); if (!BufferIsValid(buffer)) ! elog(CRASH, "heap_clean_redo: no block"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "heap_clean_redo: uninitialized page"); if (XLByteLE(lsn, PageGetLSN(page))) { *************** *** 2015,2025 **** buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(STOP, "heap_delete_%sdo: no block", (redo) ? "re" : "un"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "heap_delete_%sdo: uninitialized page", (redo) ? "re" : "un"); if (redo) { --- 2015,2025 ---- buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(CRASH, "heap_delete_%sdo: no block", (redo) ? "re" : "un"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "heap_delete_%sdo: uninitialized page", (redo) ? "re" : "un"); if (redo) { *************** *** 2031,2044 **** } else if (XLByteLT(PageGetLSN(page), lsn)) /* changes are not applied * ?! */ ! elog(STOP, "heap_delete_undo: bad page LSN"); offnum = ItemPointerGetOffsetNumber(&(xlrec->target.tid)); if (PageGetMaxOffsetNumber(page) >= offnum) lp = PageGetItemId(page, offnum); if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsUsed(lp)) ! elog(STOP, "heap_delete_%sdo: invalid lp", (redo) ? "re" : "un"); htup = (HeapTupleHeader) PageGetItem(page, lp); --- 2031,2044 ---- } else if (XLByteLT(PageGetLSN(page), lsn)) /* changes are not applied * ?! */ ! elog(CRASH, "heap_delete_undo: bad page LSN"); offnum = ItemPointerGetOffsetNumber(&(xlrec->target.tid)); if (PageGetMaxOffsetNumber(page) >= offnum) lp = PageGetItemId(page, offnum); if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsUsed(lp)) ! elog(CRASH, "heap_delete_%sdo: invalid lp", (redo) ? "re" : "un"); htup = (HeapTupleHeader) PageGetItem(page, lp); *************** *** 2054,2060 **** return; } ! elog(STOP, "heap_delete_undo: unimplemented"); } static void --- 2054,2060 ---- return; } ! elog(CRASH, "heap_delete_undo: unimplemented"); } static void *************** *** 2080,2086 **** page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page) && (!redo || !(record->xl_info & XLOG_HEAP_INIT_PAGE))) ! elog(STOP, "heap_insert_%sdo: uninitialized page", (redo) ? "re" : "un"); if (redo) { --- 2080,2086 ---- page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page) && (!redo || !(record->xl_info & XLOG_HEAP_INIT_PAGE))) ! elog(CRASH, "heap_insert_%sdo: uninitialized page", (redo) ? "re" : "un"); if (redo) { *************** *** 2104,2110 **** offnum = ItemPointerGetOffsetNumber(&(xlrec->target.tid)); if (PageGetMaxOffsetNumber(page) + 1 < offnum) ! elog(STOP, "heap_insert_redo: invalid max offset number"); newlen = record->xl_len - SizeOfHeapInsert - SizeOfHeapHeader; Assert(newlen <= MaxTupleSize); --- 2104,2110 ---- offnum = ItemPointerGetOffsetNumber(&(xlrec->target.tid)); if (PageGetMaxOffsetNumber(page) + 1 < offnum) ! elog(CRASH, "heap_insert_redo: invalid max offset number"); newlen = record->xl_len - SizeOfHeapInsert - SizeOfHeapHeader; Assert(newlen <= MaxTupleSize); *************** *** 2128,2134 **** offnum = PageAddItem(page, (Item) htup, newlen, offnum, LP_USED | OverwritePageMode); if (offnum == InvalidOffsetNumber) ! elog(STOP, "heap_insert_redo: failed to add tuple"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); /* prev sui */ UnlockAndWriteBuffer(buffer); --- 2128,2134 ---- offnum = PageAddItem(page, (Item) htup, newlen, offnum, LP_USED | OverwritePageMode); if (offnum == InvalidOffsetNumber) ! elog(CRASH, "heap_insert_redo: failed to add tuple"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); /* prev sui */ UnlockAndWriteBuffer(buffer); *************** *** 2138,2146 **** /* undo insert */ if (XLByteLT(PageGetLSN(page), lsn)) /* changes are not applied * ?! */ ! elog(STOP, "heap_insert_undo: bad page LSN"); ! elog(STOP, "heap_insert_undo: unimplemented"); } /* --- 2138,2146 ---- /* undo insert */ if (XLByteLT(PageGetLSN(page), lsn)) /* changes are not applied * ?! */ ! elog(CRASH, "heap_insert_undo: bad page LSN"); ! elog(CRASH, "heap_insert_undo: unimplemented"); } /* *************** *** 2171,2181 **** buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(STOP, "heap_update_%sdo: no block", (redo) ? "re" : "un"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "heap_update_%sdo: uninitialized old page", (redo) ? "re" : "un"); if (redo) { --- 2171,2181 ---- buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(CRASH, "heap_update_%sdo: no block", (redo) ? "re" : "un"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "heap_update_%sdo: uninitialized old page", (redo) ? "re" : "un"); if (redo) { *************** *** 2189,2202 **** } else if (XLByteLT(PageGetLSN(page), lsn)) /* changes are not applied * ?! */ ! elog(STOP, "heap_update_undo: bad old tuple page LSN"); offnum = ItemPointerGetOffsetNumber(&(xlrec->target.tid)); if (PageGetMaxOffsetNumber(page) >= offnum) lp = PageGetItemId(page, offnum); if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsUsed(lp)) ! elog(STOP, "heap_update_%sdo: invalid lp", (redo) ? "re" : "un"); htup = (HeapTupleHeader) PageGetItem(page, lp); --- 2189,2202 ---- } else if (XLByteLT(PageGetLSN(page), lsn)) /* changes are not applied * ?! */ ! elog(CRASH, "heap_update_undo: bad old tuple page LSN"); offnum = ItemPointerGetOffsetNumber(&(xlrec->target.tid)); if (PageGetMaxOffsetNumber(page) >= offnum) lp = PageGetItemId(page, offnum); if (PageGetMaxOffsetNumber(page) < offnum || !ItemIdIsUsed(lp)) ! elog(CRASH, "heap_update_%sdo: invalid lp", (redo) ? "re" : "un"); htup = (HeapTupleHeader) PageGetItem(page, lp); *************** *** 2224,2230 **** goto newt; } ! elog(STOP, "heap_update_undo: unimplemented"); /* Deal with new tuple */ --- 2224,2230 ---- goto newt; } ! elog(CRASH, "heap_update_undo: unimplemented"); /* Deal with new tuple */ *************** *** 2245,2251 **** newsame:; if (PageIsNew((PageHeader) page) && (!redo || !(record->xl_info & XLOG_HEAP_INIT_PAGE))) ! elog(STOP, "heap_update_%sdo: uninitialized page", (redo) ? "re" : "un"); if (redo) { --- 2245,2251 ---- newsame:; if (PageIsNew((PageHeader) page) && (!redo || !(record->xl_info & XLOG_HEAP_INIT_PAGE))) ! elog(CRASH, "heap_update_%sdo: uninitialized page", (redo) ? "re" : "un"); if (redo) { *************** *** 2269,2275 **** offnum = ItemPointerGetOffsetNumber(&(xlrec->newtid)); if (PageGetMaxOffsetNumber(page) + 1 < offnum) ! elog(STOP, "heap_update_redo: invalid max offset number"); hsize = SizeOfHeapUpdate + SizeOfHeapHeader; if (move) --- 2269,2275 ---- offnum = ItemPointerGetOffsetNumber(&(xlrec->newtid)); if (PageGetMaxOffsetNumber(page) + 1 < offnum) ! elog(CRASH, "heap_update_redo: invalid max offset number"); hsize = SizeOfHeapUpdate + SizeOfHeapHeader; if (move) *************** *** 2315,2321 **** offnum = PageAddItem(page, (Item) htup, newlen, offnum, LP_USED | OverwritePageMode); if (offnum == InvalidOffsetNumber) ! elog(STOP, "heap_update_redo: failed to add tuple"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); /* prev sui */ UnlockAndWriteBuffer(buffer); --- 2315,2321 ---- offnum = PageAddItem(page, (Item) htup, newlen, offnum, LP_USED | OverwritePageMode); if (offnum == InvalidOffsetNumber) ! elog(CRASH, "heap_update_redo: failed to add tuple"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); /* prev sui */ UnlockAndWriteBuffer(buffer); *************** *** 2324,2332 **** /* undo */ if (XLByteLT(PageGetLSN(page), lsn)) /* changes not applied?! */ ! elog(STOP, "heap_update_undo: bad new tuple page LSN"); ! elog(STOP, "heap_update_undo: unimplemented"); } --- 2324,2332 ---- /* undo */ if (XLByteLT(PageGetLSN(page), lsn)) /* changes not applied?! */ ! elog(CRASH, "heap_update_undo: bad new tuple page LSN"); ! elog(CRASH, "heap_update_undo: unimplemented"); } *************** *** 2342,2371 **** HeapTupleHeader htup; if (!RelationIsValid(reln)) ! elog(STOP, "_heap_unlock_tuple: can't open relation"); buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xltid->tid))); if (!BufferIsValid(buffer)) ! elog(STOP, "_heap_unlock_tuple: can't read buffer"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "_heap_unlock_tuple: uninitialized page"); offnum = ItemPointerGetOffsetNumber(&(xltid->tid)); if (offnum > PageGetMaxOffsetNumber(page)) ! elog(STOP, "_heap_unlock_tuple: invalid itemid"); lp = PageGetItemId(page, offnum); if (!ItemIdIsUsed(lp) || ItemIdDeleted(lp)) ! elog(STOP, "_heap_unlock_tuple: unused/deleted tuple in rollback"); htup = (HeapTupleHeader) PageGetItem(page, lp); if (!TransactionIdEquals(htup->t_xmax, GetCurrentTransactionId()) || htup->t_cmax != GetCurrentCommandId()) ! elog(STOP, "_heap_unlock_tuple: invalid xmax/cmax in rollback"); htup->t_infomask &= ~HEAP_XMAX_UNLOGGED; htup->t_infomask |= HEAP_XMAX_INVALID; UnlockAndWriteBuffer(buffer); --- 2342,2371 ---- HeapTupleHeader htup; if (!RelationIsValid(reln)) ! elog(CRASH, "_heap_unlock_tuple: can't open relation"); buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xltid->tid))); if (!BufferIsValid(buffer)) ! elog(CRASH, "_heap_unlock_tuple: can't read buffer"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "_heap_unlock_tuple: uninitialized page"); offnum = ItemPointerGetOffsetNumber(&(xltid->tid)); if (offnum > PageGetMaxOffsetNumber(page)) ! elog(CRASH, "_heap_unlock_tuple: invalid itemid"); lp = PageGetItemId(page, offnum); if (!ItemIdIsUsed(lp) || ItemIdDeleted(lp)) ! elog(CRASH, "_heap_unlock_tuple: unused/deleted tuple in rollback"); htup = (HeapTupleHeader) PageGetItem(page, lp); if (!TransactionIdEquals(htup->t_xmax, GetCurrentTransactionId()) || htup->t_cmax != GetCurrentCommandId()) ! elog(CRASH, "_heap_unlock_tuple: invalid xmax/cmax in rollback"); htup->t_infomask &= ~HEAP_XMAX_UNLOGGED; htup->t_infomask |= HEAP_XMAX_INVALID; UnlockAndWriteBuffer(buffer); *************** *** 2389,2395 **** else if (info == XLOG_HEAP_CLEAN) heap_xlog_clean(true, lsn, record); else ! elog(STOP, "heap_redo: unknown op code %u", info); } void --- 2389,2395 ---- else if (info == XLOG_HEAP_CLEAN) heap_xlog_clean(true, lsn, record); else ! elog(CRASH, "heap_redo: unknown op code %u", info); } void *************** *** 2409,2415 **** else if (info == XLOG_HEAP_CLEAN) heap_xlog_clean(false, lsn, record); else ! elog(STOP, "heap_undo: unknown op code %u", info); } static void --- 2409,2415 ---- else if (info == XLOG_HEAP_CLEAN) heap_xlog_clean(false, lsn, record); else ! elog(CRASH, "heap_undo: unknown op code %u", info); } static void Index: src/backend/access/heap/hio.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/heap/hio.c,v retrieving revision 1.43 diff -c -r1.43 hio.c *** src/backend/access/heap/hio.c 2001/10/25 05:49:21 1.43 --- src/backend/access/heap/hio.c 2002/02/19 04:54:55 *************** *** 50,56 **** tuple->t_len, InvalidOffsetNumber, LP_USED); if (offnum == InvalidOffsetNumber) ! elog(STOP, "RelationPutHeapTuple: failed to add tuple"); /* Update tuple->t_self to the actual position where it was stored */ ItemPointerSet(&(tuple->t_self), BufferGetBlockNumber(buffer), offnum); --- 50,56 ---- tuple->t_len, InvalidOffsetNumber, LP_USED); if (offnum == InvalidOffsetNumber) ! elog(CRASH, "RelationPutHeapTuple: failed to add tuple"); /* Update tuple->t_self to the actual position where it was stored */ ItemPointerSet(&(tuple->t_self), BufferGetBlockNumber(buffer), offnum); *************** *** 270,276 **** if (len > PageGetFreeSpace(pageHeader)) { /* We should not get here given the test at the top */ ! elog(STOP, "Tuple is too big: size %lu", (unsigned long) len); } /* --- 270,276 ---- if (len > PageGetFreeSpace(pageHeader)) { /* We should not get here given the test at the top */ ! elog(CRASH, "Tuple is too big: size %lu", (unsigned long) len); } /* Index: src/backend/access/nbtree/nbtinsert.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v retrieving revision 1.88 diff -c -r1.88 nbtinsert.c *** src/backend/access/nbtree/nbtinsert.c 2002/01/01 20:32:37 1.88 --- src/backend/access/nbtree/nbtinsert.c 2002/02/19 04:54:57 *************** *** 735,741 **** item = (BTItem) PageGetItem(origpage, itemid); if (PageAddItem(rightpage, (Item) item, itemsz, rightoff, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "btree: failed to add hikey to the right sibling"); rightoff = OffsetNumberNext(rightoff); } --- 735,741 ---- item = (BTItem) PageGetItem(origpage, itemid); if (PageAddItem(rightpage, (Item) item, itemsz, rightoff, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "btree: failed to add hikey to the right sibling"); rightoff = OffsetNumberNext(rightoff); } *************** *** 761,767 **** lhikey = item; if (PageAddItem(leftpage, (Item) item, itemsz, leftoff, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "btree: failed to add hikey to the left sibling"); leftoff = OffsetNumberNext(leftoff); /* --- 761,767 ---- lhikey = item; if (PageAddItem(leftpage, (Item) item, itemsz, leftoff, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "btree: failed to add hikey to the left sibling"); leftoff = OffsetNumberNext(leftoff); /* *************** *** 1316,1322 **** * the two items will go into positions P_HIKEY and P_FIRSTKEY. */ if (PageAddItem(rootpage, (Item) new_item, itemsz, P_HIKEY, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "btree: failed to add leftkey to new root page"); pfree(new_item); /* --- 1316,1322 ---- * the two items will go into positions P_HIKEY and P_FIRSTKEY. */ if (PageAddItem(rootpage, (Item) new_item, itemsz, P_HIKEY, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "btree: failed to add leftkey to new root page"); pfree(new_item); /* *************** *** 1333,1339 **** * insert the right page pointer into the new root page. */ if (PageAddItem(rootpage, (Item) new_item, itemsz, P_FIRSTKEY, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "btree: failed to add rightkey to new root page"); pfree(new_item); metad->btm_root = rootblknum; --- 1333,1339 ---- * insert the right page pointer into the new root page. */ if (PageAddItem(rootpage, (Item) new_item, itemsz, P_FIRSTKEY, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "btree: failed to add rightkey to new root page"); pfree(new_item); metad->btm_root = rootblknum; *************** *** 2034,2040 **** if (PageAddItem(page, (Item) btitem, itemsize, itup_off, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "btree: failed to add item to the %s for %s", where, RelationGetRelationName(rel)); } --- 2034,2040 ---- if (PageAddItem(page, (Item) btitem, itemsize, itup_off, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "btree: failed to add item to the %s for %s", where, RelationGetRelationName(rel)); } Index: src/backend/access/nbtree/nbtree.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v retrieving revision 1.87 diff -c -r1.87 nbtree.c *** src/backend/access/nbtree/nbtree.c 2002/01/06 00:37:43 1.87 --- src/backend/access/nbtree/nbtree.c 2002/02/19 04:54:58 *************** *** 776,782 **** itemsz = MAXALIGN(itemsz); if (PageAddItem(page, (Item) from, itemsz, FirstOffsetNumber, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "_bt_restore_page: can't add item to page"); from += itemsz; } } --- 776,782 ---- itemsz = MAXALIGN(itemsz); if (PageAddItem(page, (Item) from, itemsz, FirstOffsetNumber, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "_bt_restore_page: can't add item to page"); from += itemsz; } } *************** *** 799,808 **** buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_delete_redo: block unfound"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "btree_delete_redo: uninitialized page"); if (XLByteLE(lsn, PageGetLSN(page))) { --- 799,808 ---- buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_delete_redo: block unfound"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "btree_delete_redo: uninitialized page"); if (XLByteLE(lsn, PageGetLSN(page))) { *************** *** 838,847 **** buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_insert_%sdo: block unfound", (redo) ? "re" : "un"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "btree_insert_%sdo: uninitialized page", (redo) ? "re" : "un"); pageop = (BTPageOpaque) PageGetSpecialPointer(page); if (redo) --- 838,847 ---- buffer = XLogReadBuffer(false, reln, ItemPointerGetBlockNumber(&(xlrec->target.tid))); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_insert_%sdo: block unfound", (redo) ? "re" : "un"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "btree_insert_%sdo: uninitialized page", (redo) ? "re" : "un"); pageop = (BTPageOpaque) PageGetSpecialPointer(page); if (redo) *************** *** 855,861 **** record->xl_len - SizeOfBtreeInsert, ItemPointerGetOffsetNumber(&(xlrec->target.tid)), LP_USED) == InvalidOffsetNumber) ! elog(STOP, "btree_insert_redo: failed to add item"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); --- 855,861 ---- record->xl_len - SizeOfBtreeInsert, ItemPointerGetOffsetNumber(&(xlrec->target.tid)), LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "btree_insert_redo: failed to add item"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); *************** *** 864,870 **** else { if (XLByteLT(PageGetLSN(page), lsn)) ! elog(STOP, "btree_insert_undo: bad page LSN"); if (!P_ISLEAF(pageop)) { --- 864,870 ---- else { if (XLByteLT(PageGetLSN(page), lsn)) ! elog(CRASH, "btree_insert_undo: bad page LSN"); if (!P_ISLEAF(pageop)) { *************** *** 872,878 **** return; } ! elog(STOP, "btree_insert_undo: unimplemented"); } return; --- 872,878 ---- return; } ! elog(CRASH, "btree_insert_undo: unimplemented"); } return; *************** *** 899,911 **** BlockIdGetBlockNumber(&(xlrec->otherblk)); buffer = XLogReadBuffer(false, reln, blkno); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_split_%s: lost left sibling", op); page = (Page) BufferGetPage(buffer); if (redo) _bt_pageinit(page, BufferGetPageSize(buffer)); else if (PageIsNew((PageHeader) page)) ! elog(STOP, "btree_split_undo: uninitialized left sibling"); pageop = (BTPageOpaque) PageGetSpecialPointer(page); if (redo) --- 899,911 ---- BlockIdGetBlockNumber(&(xlrec->otherblk)); buffer = XLogReadBuffer(false, reln, blkno); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_split_%s: lost left sibling", op); page = (Page) BufferGetPage(buffer); if (redo) _bt_pageinit(page, BufferGetPageSize(buffer)); else if (PageIsNew((PageHeader) page)) ! elog(CRASH, "btree_split_undo: uninitialized left sibling"); pageop = (BTPageOpaque) PageGetSpecialPointer(page); if (redo) *************** *** 928,935 **** /* undo */ { if (XLByteLT(PageGetLSN(page), lsn)) ! elog(STOP, "btree_split_undo: bad left sibling LSN"); ! elog(STOP, "btree_split_undo: unimplemented"); } /* Right (new) sibling */ --- 928,935 ---- /* undo */ { if (XLByteLT(PageGetLSN(page), lsn)) ! elog(CRASH, "btree_split_undo: bad left sibling LSN"); ! elog(CRASH, "btree_split_undo: unimplemented"); } /* Right (new) sibling */ *************** *** 937,949 **** ItemPointerGetBlockNumber(&(xlrec->target.tid)); buffer = XLogReadBuffer((redo) ? true : false, reln, blkno); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_split_%s: lost right sibling", op); page = (Page) BufferGetPage(buffer); if (redo) _bt_pageinit(page, BufferGetPageSize(buffer)); else if (PageIsNew((PageHeader) page)) ! elog(STOP, "btree_split_undo: uninitialized right sibling"); pageop = (BTPageOpaque) PageGetSpecialPointer(page); if (redo) --- 937,949 ---- ItemPointerGetBlockNumber(&(xlrec->target.tid)); buffer = XLogReadBuffer((redo) ? true : false, reln, blkno); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_split_%s: lost right sibling", op); page = (Page) BufferGetPage(buffer); if (redo) _bt_pageinit(page, BufferGetPageSize(buffer)); else if (PageIsNew((PageHeader) page)) ! elog(CRASH, "btree_split_undo: uninitialized right sibling"); pageop = (BTPageOpaque) PageGetSpecialPointer(page); if (redo) *************** *** 967,974 **** /* undo */ { if (XLByteLT(PageGetLSN(page), lsn)) ! elog(STOP, "btree_split_undo: bad right sibling LSN"); ! elog(STOP, "btree_split_undo: unimplemented"); } if (!redo || (record->xl_info & XLR_BKP_BLOCK_1)) --- 967,974 ---- /* undo */ { if (XLByteLT(PageGetLSN(page), lsn)) ! elog(CRASH, "btree_split_undo: bad right sibling LSN"); ! elog(CRASH, "btree_split_undo: unimplemented"); } if (!redo || (record->xl_info & XLR_BKP_BLOCK_1)) *************** *** 981,991 **** buffer = XLogReadBuffer(false, reln, blkno); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_split_redo: lost next right page"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(STOP, "btree_split_redo: uninitialized next right page"); if (XLByteLE(lsn, PageGetLSN(page))) { --- 981,991 ---- buffer = XLogReadBuffer(false, reln, blkno); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_split_redo: lost next right page"); page = (Page) BufferGetPage(buffer); if (PageIsNew((PageHeader) page)) ! elog(CRASH, "btree_split_redo: uninitialized next right page"); if (XLByteLE(lsn, PageGetLSN(page))) { *************** *** 1022,1031 **** return; buffer = XLogReadBuffer(true, reln, BlockIdGetBlockNumber(&(xlrec->rootblk))); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_newroot_redo: no root page"); metabuf = XLogReadBuffer(false, reln, BTREE_METAPAGE); if (!BufferIsValid(buffer)) ! elog(STOP, "btree_newroot_redo: no metapage"); page = (Page) BufferGetPage(buffer); _bt_pageinit(page, BufferGetPageSize(buffer)); pageop = (BTPageOpaque) PageGetSpecialPointer(page); --- 1022,1031 ---- return; buffer = XLogReadBuffer(true, reln, BlockIdGetBlockNumber(&(xlrec->rootblk))); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_newroot_redo: no root page"); metabuf = XLogReadBuffer(false, reln, BTREE_METAPAGE); if (!BufferIsValid(buffer)) ! elog(CRASH, "btree_newroot_redo: no metapage"); page = (Page) BufferGetPage(buffer); _bt_pageinit(page, BufferGetPageSize(buffer)); pageop = (BTPageOpaque) PageGetSpecialPointer(page); *************** *** 1079,1085 **** else if (info == XLOG_BTREE_NEWROOT) btree_xlog_newroot(true, lsn, record); else ! elog(STOP, "btree_redo: unknown op code %u", info); } void --- 1079,1085 ---- else if (info == XLOG_BTREE_NEWROOT) btree_xlog_newroot(true, lsn, record); else ! elog(CRASH, "btree_redo: unknown op code %u", info); } void *************** *** 1099,1105 **** else if (info == XLOG_BTREE_NEWROOT) btree_xlog_newroot(false, lsn, record); else ! elog(STOP, "btree_undo: unknown op code %u", info); } static void --- 1099,1105 ---- else if (info == XLOG_BTREE_NEWROOT) btree_xlog_newroot(false, lsn, record); else ! elog(CRASH, "btree_undo: unknown op code %u", info); } static void Index: src/backend/access/rtree/rtree.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/rtree/rtree.c,v retrieving revision 1.69 diff -c -r1.69 rtree.c *** src/backend/access/rtree/rtree.c 2002/01/15 22:14:17 1.69 --- src/backend/access/rtree/rtree.c 2002/02/19 04:54:58 *************** *** 1345,1357 **** void rtree_redo(XLogRecPtr lsn, XLogRecord *record) { ! elog(STOP, "rtree_redo: unimplemented"); } void rtree_undo(XLogRecPtr lsn, XLogRecord *record) { ! elog(STOP, "rtree_undo: unimplemented"); } void --- 1345,1357 ---- void rtree_redo(XLogRecPtr lsn, XLogRecord *record) { ! elog(CRASH, "rtree_redo: unimplemented"); } void rtree_undo(XLogRecPtr lsn, XLogRecord *record) { ! elog(CRASH, "rtree_undo: unimplemented"); } void Index: src/backend/access/transam/clog.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/clog.c,v retrieving revision 1.7 diff -c -r1.7 clog.c *** src/backend/access/transam/clog.c 2001/10/28 06:25:42 1.7 --- src/backend/access/transam/clog.c 2002/02/19 04:54:59 *************** *** 544,562 **** if (fd < 0) { if (errno != ENOENT || !InRecovery) ! elog(STOP, "open of %s failed: %m", path); elog(DEBUG, "clog file %s doesn't exist, reading as zeroes", path); MemSet(ClogCtl->page_buffer[slotno], 0, CLOG_BLCKSZ); return; } if (lseek(fd, (off_t) offset, SEEK_SET) < 0) ! elog(STOP, "lseek of clog file %u, offset %u failed: %m", segno, offset); errno = 0; if (read(fd, ClogCtl->page_buffer[slotno], CLOG_BLCKSZ) != CLOG_BLCKSZ) ! elog(STOP, "read of clog file %u, offset %u failed: %m", segno, offset); close(fd); --- 544,562 ---- if (fd < 0) { if (errno != ENOENT || !InRecovery) ! elog(CRASH, "open of %s failed: %m", path); elog(DEBUG, "clog file %s doesn't exist, reading as zeroes", path); MemSet(ClogCtl->page_buffer[slotno], 0, CLOG_BLCKSZ); return; } if (lseek(fd, (off_t) offset, SEEK_SET) < 0) ! elog(CRASH, "lseek of clog file %u, offset %u failed: %m", segno, offset); errno = 0; if (read(fd, ClogCtl->page_buffer[slotno], CLOG_BLCKSZ) != CLOG_BLCKSZ) ! elog(CRASH, "read of clog file %u, offset %u failed: %m", segno, offset); close(fd); *************** *** 596,610 **** if (fd < 0) { if (errno != ENOENT) ! elog(STOP, "open of %s failed: %m", path); fd = BasicOpenFile(path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(STOP, "creation of file %s failed: %m", path); } if (lseek(fd, (off_t) offset, SEEK_SET) < 0) ! elog(STOP, "lseek of clog file %u, offset %u failed: %m", segno, offset); errno = 0; --- 596,610 ---- if (fd < 0) { if (errno != ENOENT) ! elog(CRASH, "open of %s failed: %m", path); fd = BasicOpenFile(path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(CRASH, "creation of file %s failed: %m", path); } if (lseek(fd, (off_t) offset, SEEK_SET) < 0) ! elog(CRASH, "lseek of clog file %u, offset %u failed: %m", segno, offset); errno = 0; *************** *** 613,619 **** /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(STOP, "write of clog file %u, offset %u failed: %m", segno, offset); } --- 613,619 ---- /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(CRASH, "write of clog file %u, offset %u failed: %m", segno, offset); } *************** *** 887,893 **** cldir = opendir(ClogDir); if (cldir == NULL) ! elog(STOP, "could not open transaction-commit log directory (%s): %m", ClogDir); errno = 0; --- 887,893 ---- cldir = opendir(ClogDir); if (cldir == NULL) ! elog(CRASH, "could not open transaction-commit log directory (%s): %m", ClogDir); errno = 0; *************** *** 912,918 **** errno = 0; } if (errno) ! elog(STOP, "could not read transaction-commit log directory (%s): %m", ClogDir); closedir(cldir); --- 912,918 ---- errno = 0; } if (errno) ! elog(CRASH, "could not read transaction-commit log directory (%s): %m", ClogDir); closedir(cldir); Index: src/backend/access/transam/xact.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/xact.c,v retrieving revision 1.115 diff -c -r1.115 xact.c *** src/backend/access/transam/xact.c 2001/11/01 06:17:01 1.115 --- src/backend/access/transam/xact.c 2002/02/19 04:55:00 *************** *** 1606,1612 **** /* SHOULD REMOVE FILES OF ALL FAILED-TO-BE-CREATED RELATIONS */ } else ! elog(STOP, "xact_redo: unknown op code %u", info); } void --- 1606,1612 ---- /* SHOULD REMOVE FILES OF ALL FAILED-TO-BE-CREATED RELATIONS */ } else ! elog(CRASH, "xact_redo: unknown op code %u", info); } void *************** *** 1615,1623 **** uint8 info = record->xl_info & ~XLR_INFO_MASK; if (info == XLOG_XACT_COMMIT) /* shouldn't be called by XLOG */ ! elog(STOP, "xact_undo: can't undo committed xaction"); else if (info != XLOG_XACT_ABORT) ! elog(STOP, "xact_redo: unknown op code %u", info); } void --- 1615,1623 ---- uint8 info = record->xl_info & ~XLR_INFO_MASK; if (info == XLOG_XACT_COMMIT) /* shouldn't be called by XLOG */ ! elog(CRASH, "xact_undo: can't undo committed xaction"); else if (info != XLOG_XACT_ABORT) ! elog(CRASH, "xact_redo: unknown op code %u", info); } void *************** *** 1652,1658 **** { #ifdef XLOG_II if (_RollbackFunc != NULL) ! elog(STOP, "XactPushRollback: already installed"); #endif _RollbackFunc = func; --- 1652,1658 ---- { #ifdef XLOG_II if (_RollbackFunc != NULL) ! elog(CRASH, "XactPushRollback: already installed"); #endif _RollbackFunc = func; Index: src/backend/access/transam/xlog.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v retrieving revision 1.87 diff -c -r1.87 xlog.c *** src/backend/access/transam/xlog.c 2002/02/18 05:44:45 1.87 --- src/backend/access/transam/xlog.c 2002/02/19 04:55:02 *************** *** 489,495 **** if (info & XLR_INFO_MASK) { if ((info & XLR_INFO_MASK) != XLOG_NO_TRAN) ! elog(STOP, "XLogInsert: invalid info mask %02X", (info & XLR_INFO_MASK)); no_tran = true; info &= ~XLR_INFO_MASK; --- 489,495 ---- if (info & XLR_INFO_MASK) { if ((info & XLR_INFO_MASK) != XLOG_NO_TRAN) ! elog(CRASH, "XLogInsert: invalid info mask %02X", (info & XLR_INFO_MASK)); no_tran = true; info &= ~XLR_INFO_MASK; *************** *** 594,600 **** } } if (i >= XLR_MAX_BKP_BLOCKS) ! elog(STOP, "XLogInsert: can backup %d blocks at most", XLR_MAX_BKP_BLOCKS); } /* Break out of loop when rdt points to last list item */ --- 594,600 ---- } } if (i >= XLR_MAX_BKP_BLOCKS) ! elog(CRASH, "XLogInsert: can backup %d blocks at most", XLR_MAX_BKP_BLOCKS); } /* Break out of loop when rdt points to last list item */ *************** *** 612,618 **** * also remove the check for xl_len == 0 in ReadRecord, below. */ if (len == 0 || len > MAXLOGRECSZ) ! elog(STOP, "XLogInsert: invalid record length %u", len); START_CRIT_SECTION(); --- 612,618 ---- * also remove the check for xl_len == 0 in ReadRecord, below. */ if (len == 0 || len > MAXLOGRECSZ) ! elog(CRASH, "XLogInsert: invalid record length %u", len); START_CRIT_SECTION(); *************** *** 1010,1016 **** * AdvanceXLInsertBuffer. */ if (!XLByteLT(LogwrtResult.Write, XLogCtl->xlblocks[Write->curridx])) ! elog(STOP, "XLogWrite: write request %X/%X is past end of log %X/%X", LogwrtResult.Write.xlogid, LogwrtResult.Write.xrecoff, XLogCtl->xlblocks[Write->curridx].xlogid, XLogCtl->xlblocks[Write->curridx].xrecoff); --- 1010,1016 ---- * AdvanceXLInsertBuffer. */ if (!XLByteLT(LogwrtResult.Write, XLogCtl->xlblocks[Write->curridx])) ! elog(CRASH, "XLogWrite: write request %X/%X is past end of log %X/%X", LogwrtResult.Write.xlogid, LogwrtResult.Write.xrecoff, XLogCtl->xlblocks[Write->curridx].xlogid, XLogCtl->xlblocks[Write->curridx].xrecoff); *************** *** 1027,1033 **** if (openLogFile >= 0) { if (close(openLogFile) != 0) ! elog(STOP, "close of log file %u, segment %u failed: %m", openLogId, openLogSeg); openLogFile = -1; } --- 1027,1033 ---- if (openLogFile >= 0) { if (close(openLogFile) != 0) ! elog(CRASH, "close of log file %u, segment %u failed: %m", openLogId, openLogSeg); openLogFile = -1; } *************** *** 1085,1091 **** { openLogOff = (LogwrtResult.Write.xrecoff - BLCKSZ) % XLogSegSize; if (lseek(openLogFile, (off_t) openLogOff, SEEK_SET) < 0) ! elog(STOP, "lseek of log file %u, segment %u, offset %u failed: %m", openLogId, openLogSeg, openLogOff); } --- 1085,1091 ---- { openLogOff = (LogwrtResult.Write.xrecoff - BLCKSZ) % XLogSegSize; if (lseek(openLogFile, (off_t) openLogOff, SEEK_SET) < 0) ! elog(CRASH, "lseek of log file %u, segment %u, offset %u failed: %m", openLogId, openLogSeg, openLogOff); } *************** *** 1097,1103 **** /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(STOP, "write of log file %u, segment %u, offset %u failed: %m", openLogId, openLogSeg, openLogOff); } openLogOff += BLCKSZ; --- 1097,1103 ---- /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(CRASH, "write of log file %u, segment %u, offset %u failed: %m", openLogId, openLogSeg, openLogOff); } openLogOff += BLCKSZ; *************** *** 1141,1147 **** !XLByteInPrevSeg(LogwrtResult.Write, openLogId, openLogSeg)) { if (close(openLogFile) != 0) ! elog(STOP, "close of log file %u, segment %u failed: %m", openLogId, openLogSeg); openLogFile = -1; } --- 1141,1147 ---- !XLByteInPrevSeg(LogwrtResult.Write, openLogId, openLogSeg)) { if (close(openLogFile) != 0) ! elog(CRASH, "close of log file %u, segment %u failed: %m", openLogId, openLogSeg); openLogFile = -1; } *************** *** 1273,1279 **** * problem; most likely, the requested flush point is past end of XLOG. * This has been seen to occur when a disk page has a corrupted LSN. * ! * Formerly we treated this as a STOP condition, but that hurts the * system's robustness rather than helping it: we do not want to take * down the whole system due to corruption on one data page. In * particular, if the bad page is encountered again during recovery then --- 1273,1279 ---- * problem; most likely, the requested flush point is past end of XLOG. * This has been seen to occur when a disk page has a corrupted LSN. * ! * Formerly we treated this as a CRASH condition, but that hurts the * system's robustness rather than helping it: we do not want to take * down the whole system due to corruption on one data page. In * particular, if the bad page is encountered again during recovery then *************** *** 1286,1292 **** * The current approach is to ERROR under normal conditions, but only * NOTICE during recovery, so that the system can be brought up even if * there's a corrupt LSN. Note that for calls from xact.c, the ERROR ! * will be promoted to STOP since xact.c calls this routine inside a * critical section. However, calls from bufmgr.c are not within * critical sections and so we will not force a restart for a bad LSN * on a data page. --- 1286,1292 ---- * The current approach is to ERROR under normal conditions, but only * NOTICE during recovery, so that the system can be brought up even if * there's a corrupt LSN. Note that for calls from xact.c, the ERROR ! * will be promoted to CRASH since xact.c calls this routine inside a * critical section. However, calls from bufmgr.c are not within * critical sections and so we will not force a restart for a bad LSN * on a data page. *************** *** 1336,1342 **** if (fd < 0) { if (errno != ENOENT) ! elog(STOP, "open of %s (log file %u, segment %u) failed: %m", path, log, seg); } else --- 1336,1342 ---- if (fd < 0) { if (errno != ENOENT) ! elog(CRASH, "open of %s (log file %u, segment %u) failed: %m", path, log, seg); } else *************** *** 1358,1364 **** fd = BasicOpenFile(tmppath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(STOP, "creation of file %s failed: %m", tmppath); /* * Zero-fill the file. We have to do this the hard way to ensure that --- 1358,1364 ---- fd = BasicOpenFile(tmppath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(CRASH, "creation of file %s failed: %m", tmppath); /* * Zero-fill the file. We have to do this the hard way to ensure that *************** *** 1385,1396 **** /* if write didn't set errno, assume problem is no disk space */ errno = save_errno ? save_errno : ENOSPC; ! elog(STOP, "ZeroFill failed to write %s: %m", tmppath); } } if (pg_fsync(fd) != 0) ! elog(STOP, "fsync of file %s failed: %m", tmppath); close(fd); --- 1385,1396 ---- /* if write didn't set errno, assume problem is no disk space */ errno = save_errno ? save_errno : ENOSPC; ! elog(CRASH, "ZeroFill failed to write %s: %m", tmppath); } } if (pg_fsync(fd) != 0) ! elog(CRASH, "fsync of file %s failed: %m", tmppath); close(fd); *************** *** 1417,1423 **** fd = BasicOpenFile(path, O_RDWR | PG_BINARY | XLOG_SYNC_BIT, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(STOP, "open of %s (log file %u, segment %u) failed: %m", path, log, seg); return (fd); --- 1417,1423 ---- fd = BasicOpenFile(path, O_RDWR | PG_BINARY | XLOG_SYNC_BIT, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(CRASH, "open of %s (log file %u, segment %u) failed: %m", path, log, seg); return (fd); *************** *** 1495,1506 **** */ #ifndef __BEOS__ if (link(tmppath, path) < 0) ! elog(STOP, "link from %s to %s (initialization of log file %u, segment %u) failed: %m", tmppath, path, log, seg); unlink(tmppath); #else if (rename(tmppath, path) < 0) ! elog(STOP, "rename from %s to %s (initialization of log file %u, segment %u) failed: %m", tmppath, path, log, seg); #endif --- 1495,1506 ---- */ #ifndef __BEOS__ if (link(tmppath, path) < 0) ! elog(CRASH, "link from %s to %s (initialization of log file %u, segment %u) failed: %m", tmppath, path, log, seg); unlink(tmppath); #else if (rename(tmppath, path) < 0) ! elog(CRASH, "rename from %s to %s (initialization of log file %u, segment %u) failed: %m", tmppath, path, log, seg); #endif *************** *** 1531,1537 **** path, log, seg); return (fd); } ! elog(STOP, "open of %s (log file %u, segment %u) failed: %m", path, log, seg); } --- 1531,1537 ---- path, log, seg); return (fd); } ! elog(CRASH, "open of %s (log file %u, segment %u) failed: %m", path, log, seg); } *************** *** 1592,1598 **** xldir = opendir(XLogDir); if (xldir == NULL) ! elog(STOP, "could not open transaction log directory (%s): %m", XLogDir); sprintf(lastoff, "%08X%08X", log, seg); --- 1592,1598 ---- xldir = opendir(XLogDir); if (xldir == NULL) ! elog(CRASH, "could not open transaction log directory (%s): %m", XLogDir); sprintf(lastoff, "%08X%08X", log, seg); *************** *** 1638,1644 **** errno = 0; } if (errno) ! elog(STOP, "could not read transaction log directory (%s): %m", XLogDir); closedir(xldir); } --- 1638,1644 ---- errno = 0; } if (errno) ! elog(CRASH, "could not read transaction log directory (%s): %m", XLogDir); closedir(xldir); } *************** *** 1749,1756 **** * If RecPtr is not NULL, try to read a record at that position. Otherwise * try to read a record just after the last one previously read. * ! * If no valid record is available, returns NULL, or fails if emode is STOP. ! * (emode must be either STOP or LOG.) * * buffer is a workspace at least _INTL_MAXLOGRECSZ bytes long. It is needed * to reassemble a record that crosses block boundaries. Note that on --- 1749,1756 ---- * If RecPtr is not NULL, try to read a record at that position. Otherwise * try to read a record just after the last one previously read. * ! * If no valid record is available, returns NULL, or fails if emode is CRASH. ! * (emode must be either CRASH or LOG.) * * buffer is a workspace at least _INTL_MAXLOGRECSZ bytes long. It is needed * to reassemble a record that crosses block boundaries. Note that on *************** *** 1802,1808 **** tmpRecPtr.xrecoff += SizeOfXLogPHD; } else if (!XRecOffIsValid(RecPtr->xrecoff)) ! elog(STOP, "ReadRecord: invalid record offset at %X/%X", RecPtr->xlogid, RecPtr->xrecoff); if (readFile >= 0 && !XLByteInSeg(*RecPtr, readId, readSeg)) --- 1802,1808 ---- tmpRecPtr.xrecoff += SizeOfXLogPHD; } else if (!XRecOffIsValid(RecPtr->xrecoff)) ! elog(CRASH, "ReadRecord: invalid record offset at %X/%X", RecPtr->xlogid, RecPtr->xrecoff); if (readFile >= 0 && !XLByteInSeg(*RecPtr, readId, readSeg)) *************** *** 2083,2093 **** #ifdef USE_LOCALE localeptr = setlocale(LC_COLLATE, NULL); if (!localeptr) ! elog(STOP, "invalid LC_COLLATE setting"); StrNCpy(ControlFile->lc_collate, localeptr, LOCALE_NAME_BUFLEN); localeptr = setlocale(LC_CTYPE, NULL); if (!localeptr) ! elog(STOP, "invalid LC_CTYPE setting"); StrNCpy(ControlFile->lc_ctype, localeptr, LOCALE_NAME_BUFLEN); /* --- 2083,2093 ---- #ifdef USE_LOCALE localeptr = setlocale(LC_COLLATE, NULL); if (!localeptr) ! elog(CRASH, "invalid LC_COLLATE setting"); StrNCpy(ControlFile->lc_collate, localeptr, LOCALE_NAME_BUFLEN); localeptr = setlocale(LC_CTYPE, NULL); if (!localeptr) ! elog(CRASH, "invalid LC_CTYPE setting"); StrNCpy(ControlFile->lc_ctype, localeptr, LOCALE_NAME_BUFLEN); /* *************** *** 2122,2128 **** * specific error than "couldn't read pg_control". */ if (sizeof(ControlFileData) > BLCKSZ) ! elog(STOP, "sizeof(ControlFileData) is larger than BLCKSZ; fix either one"); memset(buffer, 0, BLCKSZ); memcpy(buffer, ControlFile, sizeof(ControlFileData)); --- 2122,2128 ---- * specific error than "couldn't read pg_control". */ if (sizeof(ControlFileData) > BLCKSZ) ! elog(CRASH, "sizeof(ControlFileData) is larger than BLCKSZ; fix either one"); memset(buffer, 0, BLCKSZ); memcpy(buffer, ControlFile, sizeof(ControlFileData)); *************** *** 2130,2136 **** fd = BasicOpenFile(ControlFilePath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(STOP, "WriteControlFile: could not create control file (%s): %m", ControlFilePath); errno = 0; --- 2130,2136 ---- fd = BasicOpenFile(ControlFilePath, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(CRASH, "WriteControlFile: could not create control file (%s): %m", ControlFilePath); errno = 0; *************** *** 2139,2149 **** /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(STOP, "WriteControlFile: write to control file failed: %m"); } if (pg_fsync(fd) != 0) ! elog(STOP, "WriteControlFile: fsync of control file failed: %m"); close(fd); } --- 2139,2149 ---- /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(CRASH, "WriteControlFile: write to control file failed: %m"); } if (pg_fsync(fd) != 0) ! elog(CRASH, "WriteControlFile: fsync of control file failed: %m"); close(fd); } *************** *** 2159,2168 **** */ fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(STOP, "could not open control file (%s): %m", ControlFilePath); if (read(fd, ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData)) ! elog(STOP, "read from control file failed: %m"); close(fd); --- 2159,2168 ---- */ fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(CRASH, "could not open control file (%s): %m", ControlFilePath); if (read(fd, ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData)) ! elog(CRASH, "read from control file failed: %m"); close(fd); *************** *** 2173,2179 **** * more enlightening than complaining about wrong CRC. */ if (ControlFile->pg_control_version != PG_CONTROL_VERSION) ! elog(STOP, "The database cluster was initialized with PG_CONTROL_VERSION %d,\n" "\tbut the server was compiled with PG_CONTROL_VERSION %d.\n" "\tIt looks like you need to initdb.", --- 2173,2179 ---- * more enlightening than complaining about wrong CRC. */ if (ControlFile->pg_control_version != PG_CONTROL_VERSION) ! elog(CRASH, "The database cluster was initialized with PG_CONTROL_VERSION %d,\n" "\tbut the server was compiled with PG_CONTROL_VERSION %d.\n" "\tIt looks like you need to initdb.", *************** *** 2187,2193 **** FIN_CRC64(crc); if (!EQ_CRC64(crc, ControlFile->crc)) ! elog(STOP, "invalid checksum in control file"); /* * Do compatibility checking immediately. We do this here for 2 --- 2187,2193 ---- FIN_CRC64(crc); if (!EQ_CRC64(crc, ControlFile->crc)) ! elog(CRASH, "invalid checksum in control file"); /* * Do compatibility checking immediately. We do this here for 2 *************** *** 2202,2233 **** * compatibility items because they can affect sort order of indexes.) */ if (ControlFile->catalog_version_no != CATALOG_VERSION_NO) ! elog(STOP, "The database cluster was initialized with CATALOG_VERSION_NO %d,\n" "\tbut the backend was compiled with CATALOG_VERSION_NO %d.\n" "\tIt looks like you need to initdb.", ControlFile->catalog_version_no, CATALOG_VERSION_NO); if (ControlFile->blcksz != BLCKSZ) ! elog(STOP, "The database cluster was initialized with BLCKSZ %d,\n" "\tbut the backend was compiled with BLCKSZ %d.\n" "\tIt looks like you need to initdb.", ControlFile->blcksz, BLCKSZ); if (ControlFile->relseg_size != RELSEG_SIZE) ! elog(STOP, "The database cluster was initialized with RELSEG_SIZE %d,\n" "\tbut the backend was compiled with RELSEG_SIZE %d.\n" "\tIt looks like you need to initdb.", ControlFile->relseg_size, RELSEG_SIZE); #ifdef USE_LOCALE if (setlocale(LC_COLLATE, ControlFile->lc_collate) == NULL) ! elog(STOP, "The database cluster was initialized with LC_COLLATE '%s',\n" "\twhich is not recognized by setlocale().\n" "\tIt looks like you need to initdb.", ControlFile->lc_collate); if (setlocale(LC_CTYPE, ControlFile->lc_ctype) == NULL) ! elog(STOP, "The database cluster was initialized with LC_CTYPE '%s',\n" "\twhich is not recognized by setlocale().\n" "\tIt looks like you need to initdb.", --- 2202,2233 ---- * compatibility items because they can affect sort order of indexes.) */ if (ControlFile->catalog_version_no != CATALOG_VERSION_NO) ! elog(CRASH, "The database cluster was initialized with CATALOG_VERSION_NO %d,\n" "\tbut the backend was compiled with CATALOG_VERSION_NO %d.\n" "\tIt looks like you need to initdb.", ControlFile->catalog_version_no, CATALOG_VERSION_NO); if (ControlFile->blcksz != BLCKSZ) ! elog(CRASH, "The database cluster was initialized with BLCKSZ %d,\n" "\tbut the backend was compiled with BLCKSZ %d.\n" "\tIt looks like you need to initdb.", ControlFile->blcksz, BLCKSZ); if (ControlFile->relseg_size != RELSEG_SIZE) ! elog(CRASH, "The database cluster was initialized with RELSEG_SIZE %d,\n" "\tbut the backend was compiled with RELSEG_SIZE %d.\n" "\tIt looks like you need to initdb.", ControlFile->relseg_size, RELSEG_SIZE); #ifdef USE_LOCALE if (setlocale(LC_COLLATE, ControlFile->lc_collate) == NULL) ! elog(CRASH, "The database cluster was initialized with LC_COLLATE '%s',\n" "\twhich is not recognized by setlocale().\n" "\tIt looks like you need to initdb.", ControlFile->lc_collate); if (setlocale(LC_CTYPE, ControlFile->lc_ctype) == NULL) ! elog(CRASH, "The database cluster was initialized with LC_CTYPE '%s',\n" "\twhich is not recognized by setlocale().\n" "\tIt looks like you need to initdb.", *************** *** 2235,2241 **** #else /* not USE_LOCALE */ if (strcmp(ControlFile->lc_collate, "C") != 0 || strcmp(ControlFile->lc_ctype, "C") != 0) ! elog(STOP, "The database cluster was initialized with LC_COLLATE '%s' and\n" "\tLC_CTYPE '%s', but the server was compiled without locale support.\n" "\tIt looks like you need to initdb or recompile.", --- 2235,2241 ---- #else /* not USE_LOCALE */ if (strcmp(ControlFile->lc_collate, "C") != 0 || strcmp(ControlFile->lc_ctype, "C") != 0) ! elog(CRASH, "The database cluster was initialized with LC_COLLATE '%s' and\n" "\tLC_CTYPE '%s', but the server was compiled without locale support.\n" "\tIt looks like you need to initdb or recompile.", *************** *** 2256,2262 **** fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(STOP, "could not open control file (%s): %m", ControlFilePath); errno = 0; if (write(fd, ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData)) --- 2256,2262 ---- fd = BasicOpenFile(ControlFilePath, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) ! elog(CRASH, "could not open control file (%s): %m", ControlFilePath); errno = 0; if (write(fd, ControlFile, sizeof(ControlFileData)) != sizeof(ControlFileData)) *************** *** 2264,2274 **** /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(STOP, "write to control file failed: %m"); } if (pg_fsync(fd) != 0) ! elog(STOP, "fsync of control file failed: %m"); close(fd); } --- 2264,2274 ---- /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(CRASH, "write to control file failed: %m"); } if (pg_fsync(fd) != 0) ! elog(CRASH, "fsync of control file failed: %m"); close(fd); } *************** *** 2408,2418 **** /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(STOP, "BootStrapXLOG failed to write log file: %m"); } if (pg_fsync(openLogFile) != 0) ! elog(STOP, "BootStrapXLOG failed to fsync log file: %m"); close(openLogFile); openLogFile = -1; --- 2408,2418 ---- /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) errno = ENOSPC; ! elog(CRASH, "BootStrapXLOG failed to write log file: %m"); } if (pg_fsync(openLogFile) != 0) ! elog(CRASH, "BootStrapXLOG failed to fsync log file: %m"); close(openLogFile); openLogFile = -1; *************** *** 2478,2484 **** ControlFile->state < DB_SHUTDOWNED || ControlFile->state > DB_IN_PRODUCTION || !XRecOffIsValid(ControlFile->checkPoint.xrecoff)) ! elog(STOP, "control file context is broken"); if (ControlFile->state == DB_SHUTDOWNED) elog(LOG, "database system was shut down at %s", --- 2478,2484 ---- ControlFile->state < DB_SHUTDOWNED || ControlFile->state > DB_IN_PRODUCTION || !XRecOffIsValid(ControlFile->checkPoint.xrecoff)) ! elog(CRASH, "control file context is broken"); if (ControlFile->state == DB_SHUTDOWNED) elog(LOG, "database system was shut down at %s", *************** *** 2517,2523 **** InRecovery = true; /* force recovery even if SHUTDOWNED */ } else ! elog(STOP, "unable to locate a valid checkpoint record"); } LastRec = RecPtr = checkPointLoc; memcpy(&checkPoint, XLogRecGetData(record), sizeof(CheckPoint)); --- 2517,2523 ---- InRecovery = true; /* force recovery even if SHUTDOWNED */ } else ! elog(CRASH, "unable to locate a valid checkpoint record"); } LastRec = RecPtr = checkPointLoc; memcpy(&checkPoint, XLogRecGetData(record), sizeof(CheckPoint)); *************** *** 2530,2536 **** elog(LOG, "next transaction id: %u; next oid: %u", checkPoint.nextXid, checkPoint.nextOid); if (!TransactionIdIsNormal(checkPoint.nextXid)) ! elog(STOP, "invalid next transaction id"); ShmemVariableCache->nextXid = checkPoint.nextXid; ShmemVariableCache->nextOid = checkPoint.nextOid; --- 2530,2536 ---- elog(LOG, "next transaction id: %u; next oid: %u", checkPoint.nextXid, checkPoint.nextOid); if (!TransactionIdIsNormal(checkPoint.nextXid)) ! elog(CRASH, "invalid next transaction id"); ShmemVariableCache->nextXid = checkPoint.nextXid; ShmemVariableCache->nextOid = checkPoint.nextOid; *************** *** 2541,2547 **** XLogCtl->RedoRecPtr = checkPoint.redo; if (XLByteLT(RecPtr, checkPoint.redo)) ! elog(STOP, "invalid redo in checkpoint record"); if (checkPoint.undo.xrecoff == 0) checkPoint.undo = RecPtr; --- 2541,2547 ---- XLogCtl->RedoRecPtr = checkPoint.redo; if (XLByteLT(RecPtr, checkPoint.redo)) ! elog(CRASH, "invalid redo in checkpoint record"); if (checkPoint.undo.xrecoff == 0) checkPoint.undo = RecPtr; *************** *** 2549,2555 **** XLByteLT(checkPoint.redo, RecPtr)) { if (wasShutdown) ! elog(STOP, "invalid redo/undo record in shutdown checkpoint"); InRecovery = true; } else if (ControlFile->state != DB_SHUTDOWNED) --- 2549,2555 ---- XLByteLT(checkPoint.redo, RecPtr)) { if (wasShutdown) ! elog(CRASH, "invalid redo/undo record in shutdown checkpoint"); InRecovery = true; } else if (ControlFile->state != DB_SHUTDOWNED) *************** *** 2568,2574 **** /* Is REDO required ? */ if (XLByteLT(checkPoint.redo, RecPtr)) ! record = ReadRecord(&(checkPoint.redo), STOP, buffer); else { /* read past CheckPoint record */ --- 2568,2574 ---- /* Is REDO required ? */ if (XLByteLT(checkPoint.redo, RecPtr)) ! record = ReadRecord(&(checkPoint.redo), CRASH, buffer); else { /* read past CheckPoint record */ *************** *** 2622,2628 **** * Init xlog buffer cache using the block containing the last valid * record from the previous incarnation. */ ! record = ReadRecord(&LastRec, STOP, buffer); EndOfLog = EndRecPtr; XLByteToPrevSeg(EndOfLog, openLogId, openLogSeg); openLogFile = XLogFileOpen(openLogId, openLogSeg, false); --- 2622,2628 ---- * Init xlog buffer cache using the block containing the last valid * record from the previous incarnation. */ ! record = ReadRecord(&LastRec, CRASH, buffer); EndOfLog = EndRecPtr; XLByteToPrevSeg(EndOfLog, openLogId, openLogSeg); openLogFile = XLogFileOpen(openLogId, openLogSeg, false); *************** *** 2701,2707 **** RecPtr.xlogid, RecPtr.xrecoff); do { ! record = ReadRecord(&RecPtr, STOP, buffer); if (TransactionIdIsValid(record->xl_xid) && !TransactionIdDidCommit(record->xl_xid)) RmgrTable[record->xl_rmid].rm_undo(EndRecPtr, record); --- 2701,2707 ---- RecPtr.xlogid, RecPtr.xrecoff); do { ! record = ReadRecord(&RecPtr, CRASH, buffer); if (TransactionIdIsValid(record->xl_xid) && !TransactionIdDidCommit(record->xl_xid)) RmgrTable[record->xl_rmid].rm_undo(EndRecPtr, record); *************** *** 2995,3001 **** checkPoint.undo = GetUndoRecPtr(); if (shutdown && checkPoint.undo.xrecoff != 0) ! elog(STOP, "active transaction while database system is shutting down"); #endif /* --- 2995,3001 ---- checkPoint.undo = GetUndoRecPtr(); if (shutdown && checkPoint.undo.xrecoff != 0) ! elog(CRASH, "active transaction while database system is shutting down"); #endif /* *************** *** 3043,3049 **** * recptr = end of actual checkpoint record. */ if (shutdown && !XLByteEQ(checkPoint.redo, ProcLastRecPtr)) ! elog(STOP, "concurrent transaction log activity while database system is shutting down"); /* * Select point at which we can truncate the log, which we base on the --- 3043,3049 ---- * recptr = end of actual checkpoint record. */ if (shutdown && !XLByteEQ(checkPoint.redo, ProcLastRecPtr)) ! elog(CRASH, "concurrent transaction log activity while database system is shutting down"); /* * Select point at which we can truncate the log, which we base on the *************** *** 3297,3308 **** if (openLogFile >= 0) { if (pg_fsync(openLogFile) != 0) ! elog(STOP, "fsync of log file %u, segment %u failed: %m", openLogId, openLogSeg); if (open_sync_bit != new_sync_bit) { if (close(openLogFile) != 0) ! elog(STOP, "close of log file %u, segment %u failed: %m", openLogId, openLogSeg); openLogFile = -1; } --- 3297,3308 ---- if (openLogFile >= 0) { if (pg_fsync(openLogFile) != 0) ! elog(CRASH, "fsync of log file %u, segment %u failed: %m", openLogId, openLogSeg); if (open_sync_bit != new_sync_bit) { if (close(openLogFile) != 0) ! elog(CRASH, "close of log file %u, segment %u failed: %m", openLogId, openLogSeg); openLogFile = -1; } *************** *** 3323,3335 **** { case SYNC_METHOD_FSYNC: if (pg_fsync(openLogFile) != 0) ! elog(STOP, "fsync of log file %u, segment %u failed: %m", openLogId, openLogSeg); break; #ifdef HAVE_FDATASYNC case SYNC_METHOD_FDATASYNC: if (pg_fdatasync(openLogFile) != 0) ! elog(STOP, "fdatasync of log file %u, segment %u failed: %m", openLogId, openLogSeg); break; #endif --- 3323,3335 ---- { case SYNC_METHOD_FSYNC: if (pg_fsync(openLogFile) != 0) ! elog(CRASH, "fsync of log file %u, segment %u failed: %m", openLogId, openLogSeg); break; #ifdef HAVE_FDATASYNC case SYNC_METHOD_FDATASYNC: if (pg_fdatasync(openLogFile) != 0) ! elog(CRASH, "fdatasync of log file %u, segment %u failed: %m", openLogId, openLogSeg); break; #endif *************** *** 3337,3343 **** /* write synced it already */ break; default: ! elog(STOP, "bogus wal_sync_method %d", sync_method); break; } } --- 3337,3343 ---- /* write synced it already */ break; default: ! elog(CRASH, "bogus wal_sync_method %d", sync_method); break; } } Index: src/backend/access/transam/xlogutils.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/xlogutils.c,v retrieving revision 1.21 diff -c -r1.21 xlogutils.c *** src/backend/access/transam/xlogutils.c 2001/10/25 05:49:22 1.21 --- src/backend/access/transam/xlogutils.c 2002/02/19 04:55:02 *************** *** 249,255 **** hentry = (XLogRelCacheEntry *) hash_search(_xlrelcache, (void *) &(rdesc->reldata.rd_node), HASH_REMOVE, NULL); if (hentry == NULL) ! elog(STOP, "_xl_remove_hash_entry: file was not found in cache"); if (rdesc->reldata.rd_fd >= 0) smgrclose(DEFAULT_SMGR, &(rdesc->reldata)); --- 249,255 ---- hentry = (XLogRelCacheEntry *) hash_search(_xlrelcache, (void *) &(rdesc->reldata.rd_node), HASH_REMOVE, NULL); if (hentry == NULL) ! elog(CRASH, "_xl_remove_hash_entry: file was not found in cache"); if (rdesc->reldata.rd_fd >= 0) smgrclose(DEFAULT_SMGR, &(rdesc->reldata)); *************** *** 346,355 **** hash_search(_xlrelcache, (void *) &rnode, HASH_ENTER, &found); if (hentry == NULL) ! elog(STOP, "XLogOpenRelation: out of memory for cache"); if (found) ! elog(STOP, "XLogOpenRelation: file found on insert into cache"); hentry->rdesc = res; --- 346,355 ---- hash_search(_xlrelcache, (void *) &rnode, HASH_ENTER, &found); if (hentry == NULL) ! elog(CRASH, "XLogOpenRelation: out of memory for cache"); if (found) ! elog(CRASH, "XLogOpenRelation: file found on insert into cache"); hentry->rdesc = res; Index: src/backend/bootstrap/bootstrap.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v retrieving revision 1.120 diff -c -r1.120 bootstrap.c *** src/backend/bootstrap/bootstrap.c 2002/01/10 01:11:45 1.120 --- src/backend/bootstrap/bootstrap.c 2002/02/19 04:55:03 *************** *** 392,398 **** proc_exit(0); /* done */ default: ! elog(STOP, "Unsupported XLOG op %d", xlogop); proc_exit(0); } --- 392,398 ---- proc_exit(0); /* done */ default: ! elog(CRASH, "Unsupported XLOG op %d", xlogop); proc_exit(0); } Index: src/backend/commands/analyze.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/analyze.c,v retrieving revision 1.25 diff -c -r1.25 analyze.c *** src/backend/commands/analyze.c 2002/01/06 00:37:44 1.25 --- src/backend/commands/analyze.c 2002/02/19 04:55:04 *************** *** 106,113 **** #define swapDatum(a,b) do {Datum _tmp; _tmp=a; a=b; b=_tmp;} while(0) - static int MESSAGE_LEVEL; - /* context information for compare_scalars() */ static FmgrInfo *datumCmpFn; static SortFunctionKind datumCmpFnKind; --- 106,111 ---- *************** *** 150,160 **** HeapTuple *rows; HeapTuple tuple; - if (vacstmt->verbose) - MESSAGE_LEVEL = NOTICE; - else - MESSAGE_LEVEL = DEBUG; - /* * Begin a transaction for analyzing this relation. * --- 148,153 ---- *************** *** 214,220 **** return; } ! elog(MESSAGE_LEVEL, "Analyzing %s", RelationGetRelationName(onerel)); /* * Determine which columns to analyze --- 207,213 ---- return; } ! elog(INFO, "Analyzing %s", RelationGetRelationName(onerel)); /* * Determine which columns to analyze Index: src/backend/commands/async.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/async.c,v retrieving revision 1.81 diff -c -r1.81 async.c *** src/backend/commands/async.c 2001/10/25 05:49:23 1.81 --- src/backend/commands/async.c 2002/02/19 04:55:05 *************** *** 861,867 **** */ } else ! elog(NOTICE, "NOTIFY for %s", relname); } /* Does pendingNotifies include the given relname? */ --- 861,867 ---- */ } else ! elog(INFO, "NOTIFY for %s", relname); } /* Does pendingNotifies include the given relname? */ Index: src/backend/commands/command.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/command.c,v retrieving revision 1.153 diff -c -r1.153 command.c *** src/backend/commands/command.c 2002/02/14 15:24:06 1.153 --- src/backend/commands/command.c 2002/02/19 04:55:06 *************** *** 1582,1589 **** constrName); /* Otherwise if more than one constraint deleted, notify */ else if (deleted > 1) ! elog(NOTICE, "Multiple constraints dropped"); ! } --- 1582,1588 ---- constrName); /* Otherwise if more than one constraint deleted, notify */ else if (deleted > 1) ! elog(INFO, "Multiple constraints dropped"); } Index: src/backend/commands/creatinh.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/creatinh.c,v retrieving revision 1.81 diff -c -r1.81 creatinh.c *** src/backend/commands/creatinh.c 2001/10/25 05:49:24 1.81 --- src/backend/commands/creatinh.c 2002/02/19 04:55:07 *************** *** 425,431 **** * Yes, try to merge the two column definitions. They must * have the same type and typmod. */ ! elog(NOTICE, "CREATE TABLE: merging multiple inherited definitions of attribute \"%s\"", attributeName); def = (ColumnDef *) nth(exist_attno - 1, inhSchema); if (strcmp(def->typename->name, attributeType) != 0 || --- 425,431 ---- * Yes, try to merge the two column definitions. They must * have the same type and typmod. */ ! elog(INFO, "CREATE TABLE: merging multiple inherited definitions of attribute \"%s\"", attributeName); def = (ColumnDef *) nth(exist_attno - 1, inhSchema); if (strcmp(def->typename->name, attributeType) != 0 || *************** *** 564,570 **** * Yes, try to merge the two column definitions. They must * have the same type and typmod. */ ! elog(NOTICE, "CREATE TABLE: merging attribute \"%s\" with inherited definition", attributeName); def = (ColumnDef *) nth(exist_attno - 1, inhSchema); if (strcmp(def->typename->name, attributeType) != 0 || --- 564,570 ---- * Yes, try to merge the two column definitions. They must * have the same type and typmod. */ ! elog(INFO, "CREATE TABLE: merging attribute \"%s\" with inherited definition", attributeName); def = (ColumnDef *) nth(exist_attno - 1, inhSchema); if (strcmp(def->typename->name, attributeType) != 0 || Index: src/backend/commands/define.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/define.c,v retrieving revision 1.64 diff -c -r1.64 define.c *** src/backend/commands/define.c 2001/10/28 06:25:42 1.64 --- src/backend/commands/define.c 2002/02/19 04:55:07 *************** *** 398,409 **** else if (strcasecmp(defel->defname, "precedence") == 0) { /* NOT IMPLEMENTED (never worked in v4.2) */ ! elog(NOTICE, "CREATE OPERATOR: precedence not implemented"); } else if (strcasecmp(defel->defname, "associativity") == 0) { /* NOT IMPLEMENTED (never worked in v4.2) */ ! elog(NOTICE, "CREATE OPERATOR: associativity not implemented"); } else if (strcasecmp(defel->defname, "commutator") == 0) commutatorName = defGetString(defel); --- 398,409 ---- else if (strcasecmp(defel->defname, "precedence") == 0) { /* NOT IMPLEMENTED (never worked in v4.2) */ ! elog(INFO, "CREATE OPERATOR: precedence not implemented"); } else if (strcasecmp(defel->defname, "associativity") == 0) { /* NOT IMPLEMENTED (never worked in v4.2) */ ! elog(INFO, "CREATE OPERATOR: associativity not implemented"); } else if (strcasecmp(defel->defname, "commutator") == 0) commutatorName = defGetString(defel); Index: src/backend/commands/explain.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/explain.c,v retrieving revision 1.67 diff -c -r1.67 explain.c *** src/backend/commands/explain.c 2001/10/25 05:49:25 1.67 --- src/backend/commands/explain.c 2002/02/19 04:55:07 *************** *** 59,65 **** /* rewriter will not cope with utility statements */ if (query->commandType == CMD_UTILITY) { ! elog(NOTICE, "Utility statements have no plan structure"); return; } --- 59,65 ---- /* rewriter will not cope with utility statements */ if (query->commandType == CMD_UTILITY) { ! elog(INFO, "Utility statements have no plan structure"); return; } *************** *** 69,75 **** /* In the case of an INSTEAD NOTHING, tell at least that */ if (rewritten == NIL) { ! elog(NOTICE, "Query rewrites to nothing"); return; } --- 69,75 ---- /* In the case of an INSTEAD NOTHING, tell at least that */ if (rewritten == NIL) { ! elog(INFO, "Query rewrites to nothing"); return; } *************** *** 94,102 **** if (query->commandType == CMD_UTILITY) { if (query->utilityStmt && IsA(query->utilityStmt, NotifyStmt)) ! elog(NOTICE, "QUERY PLAN:\n\nNOTIFY\n"); else ! elog(NOTICE, "QUERY PLAN:\n\nUTILITY\n"); return; } --- 94,102 ---- if (query->commandType == CMD_UTILITY) { if (query->utilityStmt && IsA(query->utilityStmt, NotifyStmt)) ! elog(INFO, "QUERY PLAN:\n\nNOTIFY\n"); else ! elog(INFO, "QUERY PLAN:\n\nUTILITY\n"); return; } *************** *** 152,158 **** s = nodeToString(plan); if (s) { ! elog(NOTICE, "QUERY DUMP:\n\n%s", s); pfree(s); } } --- 152,158 ---- s = nodeToString(plan); if (s) { ! elog(INFO, "QUERY DUMP:\n\n%s", s); pfree(s); } } *************** *** 165,171 **** if (analyze) appendStringInfo(str, "Total runtime: %.2f msec\n", 1000.0 * totaltime); ! elog(NOTICE, "QUERY PLAN:\n\n%s", str->data); pfree(str->data); pfree(str); } --- 165,171 ---- if (analyze) appendStringInfo(str, "Total runtime: %.2f msec\n", 1000.0 * totaltime); ! elog(INFO, "QUERY PLAN:\n\n%s", str->data); pfree(str->data); pfree(str); } Index: src/backend/commands/sequence.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/sequence.c,v retrieving revision 1.68 diff -c -r1.68 sequence.c *** src/backend/commands/sequence.c 2002/01/11 18:16:04 1.68 --- src/backend/commands/sequence.c 2002/02/19 04:55:08 *************** *** 879,885 **** sequence_magic *sm; if (info != XLOG_SEQ_LOG) ! elog(STOP, "seq_redo: unknown op code %u", info); reln = XLogOpenRelation(true, RM_SEQ_ID, xlrec->node); if (!RelationIsValid(reln)) --- 879,885 ---- sequence_magic *sm; if (info != XLOG_SEQ_LOG) ! elog(CRASH, "seq_redo: unknown op code %u", info); reln = XLogOpenRelation(true, RM_SEQ_ID, xlrec->node); if (!RelationIsValid(reln)) *************** *** 887,893 **** buffer = XLogReadBuffer(true, reln, 0); if (!BufferIsValid(buffer)) ! elog(STOP, "seq_redo: can't read block of %u/%u", xlrec->node.tblNode, xlrec->node.relNode); page = (Page) BufferGetPage(buffer); --- 887,893 ---- buffer = XLogReadBuffer(true, reln, 0); if (!BufferIsValid(buffer)) ! elog(CRASH, "seq_redo: can't read block of %u/%u", xlrec->node.tblNode, xlrec->node.relNode); page = (Page) BufferGetPage(buffer); *************** *** 903,909 **** itemsz = MAXALIGN(itemsz); if (PageAddItem(page, (Item) item, itemsz, FirstOffsetNumber, LP_USED) == InvalidOffsetNumber) ! elog(STOP, "seq_redo: failed to add item to page"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); --- 903,909 ---- itemsz = MAXALIGN(itemsz); if (PageAddItem(page, (Item) item, itemsz, FirstOffsetNumber, LP_USED) == InvalidOffsetNumber) ! elog(CRASH, "seq_redo: failed to add item to page"); PageSetLSN(page, lsn); PageSetSUI(page, ThisStartUpID); Index: src/backend/commands/trigger.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/trigger.c,v retrieving revision 1.101 diff -c -r1.101 trigger.c *** src/backend/commands/trigger.c 2002/01/15 16:52:47 1.101 --- src/backend/commands/trigger.c 2002/02/19 04:55:09 *************** *** 363,369 **** elog(ERROR, "DropTrigger: there is no trigger %s on relation %s", stmt->trigname, stmt->relname); if (tgfound > 1) ! elog(NOTICE, "DropTrigger: found (and deleted) %d triggers %s on relation %s", tgfound, stmt->trigname, stmt->relname); heap_endscan(tgscan); heap_close(tgrel, RowExclusiveLock); --- 363,369 ---- elog(ERROR, "DropTrigger: there is no trigger %s on relation %s", stmt->trigname, stmt->relname); if (tgfound > 1) ! elog(INFO, "DropTrigger: found (and deleted) %d triggers %s on relation %s", tgfound, stmt->trigname, stmt->relname); heap_endscan(tgscan); heap_close(tgrel, RowExclusiveLock); *************** *** 485,491 **** stmt.relname = pstrdup(RelationGetRelationName(refrel)); heap_close(refrel, NoLock); ! elog(NOTICE, "DROP TABLE implicitly drops referential integrity trigger from table \"%s\"", stmt.relname); DropTrigger(&stmt); --- 485,491 ---- stmt.relname = pstrdup(RelationGetRelationName(refrel)); heap_close(refrel, NoLock); ! elog(INFO, "DROP TABLE implicitly drops referential integrity trigger from table \"%s\"", stmt.relname); DropTrigger(&stmt); Index: src/backend/commands/user.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/user.c,v retrieving revision 1.90 diff -c -r1.90 user.c *** src/backend/commands/user.c 2001/11/05 17:46:25 1.90 --- src/backend/commands/user.c 2002/02/19 04:55:10 *************** *** 544,550 **** /* changes to the flat password file cannot be rolled back */ if (IsTransactionBlock() && password) ! elog(NOTICE, "ALTER USER: password changes cannot be rolled back"); /* * Scan the pg_shadow relation to be certain the user exists. Note we --- 544,550 ---- /* changes to the flat password file cannot be rolled back */ if (IsTransactionBlock() && password) ! elog(INFO, "ALTER USER: password changes cannot be rolled back"); /* * Scan the pg_shadow relation to be certain the user exists. Note we *************** *** 698,704 **** elog(ERROR, "DROP USER: permission denied"); if (IsTransactionBlock()) ! elog(NOTICE, "DROP USER cannot be rolled back completely"); /* * Scan the pg_shadow relation to find the usesysid of the user to be --- 698,704 ---- elog(ERROR, "DROP USER: permission denied"); if (IsTransactionBlock()) ! elog(INFO, "DROP USER cannot be rolled back completely"); /* * Scan the pg_shadow relation to find the usesysid of the user to be Index: src/backend/commands/vacuum.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/vacuum.c,v retrieving revision 1.213 diff -c -r1.213 vacuum.c *** src/backend/commands/vacuum.c 2002/01/06 00:37:44 1.213 --- src/backend/commands/vacuum.c 2002/02/19 04:55:12 *************** *** 108,115 **** static MemoryContext vac_context = NULL; - static int MESSAGE_LEVEL; /* message level */ - static TransactionId OldestXmin; static TransactionId FreezeLimit; --- 108,113 ---- *************** *** 191,201 **** */ pgstat_vacuum_tabstat(); - if (vacstmt->verbose) - MESSAGE_LEVEL = NOTICE; - else - MESSAGE_LEVEL = DEBUG; - /* * Create special memory context for cross-transaction storage. * --- 189,194 ---- *************** *** 971,977 **** vac_init_rusage(&ru0); relname = RelationGetRelationName(onerel); ! elog(MESSAGE_LEVEL, "--Relation %s--", relname); empty_pages = new_pages = changed_pages = empty_end_pages = 0; num_tuples = tups_vacuumed = nkeep = nunused = 0; --- 964,970 ---- vac_init_rusage(&ru0); relname = RelationGetRelationName(onerel); ! elog(INFO, "--Relation %s--", relname); empty_pages = new_pages = changed_pages = empty_end_pages = 0; num_tuples = tups_vacuumed = nkeep = nunused = 0; *************** *** 1282,1288 **** pfree(vtlinks); } ! elog(MESSAGE_LEVEL, "Pages %u: Changed %u, reaped %u, Empty %u, New %u; \ Tup %.0f: Vac %.0f, Keep/VTL %.0f/%u, UnUsed %.0f, MinLen %lu, MaxLen %lu; \ Re-using: Free/Avail. Space %.0f/%.0f; EndEmpty/Avail. Pages %u/%u.\n\t%s", nblocks, changed_pages, vacuum_pages->num_pages, empty_pages, --- 1275,1281 ---- pfree(vtlinks); } ! elog(INFO, "Pages %u: Changed %u, reaped %u, Empty %u, New %u; \ Tup %.0f: Vac %.0f, Keep/VTL %.0f/%u, UnUsed %.0f, MinLen %lu, MaxLen %lu; \ Re-using: Free/Avail. Space %.0f/%.0f; EndEmpty/Avail. Pages %u/%u.\n\t%s", nblocks, changed_pages, vacuum_pages->num_pages, empty_pages, *************** *** 1856,1862 **** InvalidOffsetNumber, LP_USED); if (newoff == InvalidOffsetNumber) { ! elog(STOP, "moving chain: failed to add item with len = %lu to page %u", (unsigned long) tuple_len, destvacpage->blkno); } newitemid = PageGetItemId(ToPage, newoff); --- 1849,1855 ---- InvalidOffsetNumber, LP_USED); if (newoff == InvalidOffsetNumber) { ! elog(CRASH, "moving chain: failed to add item with len = %lu to page %u", (unsigned long) tuple_len, destvacpage->blkno); } newitemid = PageGetItemId(ToPage, newoff); *************** *** 1979,1985 **** InvalidOffsetNumber, LP_USED); if (newoff == InvalidOffsetNumber) { ! elog(STOP, "failed to add item with len = %lu to page %u (free space %lu, nusd %u, noff %u)", (unsigned long) tuple_len, cur_page->blkno, (unsigned long) cur_page->free, cur_page->offsets_used, cur_page->offsets_free); --- 1972,1978 ---- InvalidOffsetNumber, LP_USED); if (newoff == InvalidOffsetNumber) { ! elog(CRASH, "failed to add item with len = %lu to page %u (free space %lu, nusd %u, noff %u)", (unsigned long) tuple_len, cur_page->blkno, (unsigned long) cur_page->free, cur_page->offsets_used, cur_page->offsets_free); *************** *** 2204,2210 **** } Assert(num_moved == checked_moved); ! elog(MESSAGE_LEVEL, "Rel %s: Pages: %u --> %u; Tuple(s) moved: %u.\n\t%s", RelationGetRelationName(onerel), nblocks, blkno, num_moved, vac_show_rusage(&ru0)); --- 2197,2203 ---- } Assert(num_moved == checked_moved); ! elog(INFO, "Rel %s: Pages: %u --> %u; Tuple(s) moved: %u.\n\t%s", RelationGetRelationName(onerel), nblocks, blkno, num_moved, vac_show_rusage(&ru0)); *************** *** 2376,2382 **** /* truncate relation if there are some empty end-pages */ if (vacuum_pages->empty_end_pages > 0) { ! elog(MESSAGE_LEVEL, "Rel %s: Pages: %u --> %u.", RelationGetRelationName(onerel), vacrelstats->rel_pages, relblocks); relblocks = smgrtruncate(DEFAULT_SMGR, onerel, relblocks); --- 2369,2375 ---- /* truncate relation if there are some empty end-pages */ if (vacuum_pages->empty_end_pages > 0) { ! elog(INFO, "Rel %s: Pages: %u --> %u.", RelationGetRelationName(onerel), vacrelstats->rel_pages, relblocks); relblocks = smgrtruncate(DEFAULT_SMGR, onerel, relblocks); *************** *** 2450,2456 **** stats->num_pages, stats->num_index_tuples, false); ! elog(MESSAGE_LEVEL, "Index %s: Pages %u; Tuples %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples, vac_show_rusage(&ru0)); --- 2443,2449 ---- stats->num_pages, stats->num_index_tuples, false); ! elog(INFO, "Index %s: Pages %u; Tuples %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples, vac_show_rusage(&ru0)); *************** *** 2504,2510 **** stats->num_pages, stats->num_index_tuples, false); ! elog(MESSAGE_LEVEL, "Index %s: Pages %u; Tuples %.0f: Deleted %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples - keep_tuples, stats->tuples_removed, vac_show_rusage(&ru0)); --- 2497,2503 ---- stats->num_pages, stats->num_index_tuples, false); ! elog(INFO, "Index %s: Pages %u; Tuples %.0f: Deleted %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples - keep_tuples, stats->tuples_removed, vac_show_rusage(&ru0)); Index: src/backend/commands/vacuumlazy.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v retrieving revision 1.11 diff -c -r1.11 vacuumlazy.c *** src/backend/commands/vacuumlazy.c 2002/01/06 00:37:44 1.11 --- src/backend/commands/vacuumlazy.c 2002/02/19 04:55:12 *************** *** 92,99 **** } LVRelStats; - static int MESSAGE_LEVEL; /* message level */ - static TransactionId OldestXmin; static TransactionId FreezeLimit; --- 92,97 ---- *************** *** 138,149 **** bool hasindex; BlockNumber possibly_freeable; - /* initialize */ - if (vacstmt->verbose) - MESSAGE_LEVEL = NOTICE; - else - MESSAGE_LEVEL = DEBUG; - vacuum_set_xid_limits(vacstmt, onerel->rd_rel->relisshared, &OldestXmin, &FreezeLimit); --- 136,141 ---- *************** *** 208,214 **** vac_init_rusage(&ru0); relname = RelationGetRelationName(onerel); ! elog(MESSAGE_LEVEL, "--Relation %s--", relname); empty_pages = changed_pages = 0; num_tuples = tups_vacuumed = nkeep = nunused = 0; --- 200,206 ---- vac_init_rusage(&ru0); relname = RelationGetRelationName(onerel); ! elog(INFO, "--Relation %s--", relname); empty_pages = changed_pages = 0; num_tuples = tups_vacuumed = nkeep = nunused = 0; *************** *** 430,436 **** lazy_scan_index(Irel[i], vacrelstats); } ! elog(MESSAGE_LEVEL, "Pages %u: Changed %u, Empty %u; \ Tup %.0f: Vac %.0f, Keep %.0f, UnUsed %.0f.\n\tTotal %s", nblocks, changed_pages, empty_pages, num_tuples, tups_vacuumed, nkeep, nunused, --- 422,428 ---- lazy_scan_index(Irel[i], vacrelstats); } ! elog(INFO, "Pages %u: Changed %u, Empty %u; \ Tup %.0f: Vac %.0f, Keep %.0f, UnUsed %.0f.\n\tTotal %s", nblocks, changed_pages, empty_pages, num_tuples, tups_vacuumed, nkeep, nunused, *************** *** 481,487 **** npages++; } ! elog(MESSAGE_LEVEL, "Removed %d tuples in %d pages.\n\t%s", tupindex, npages, vac_show_rusage(&ru0)); } --- 473,479 ---- npages++; } ! elog(INFO, "Removed %d tuples in %d pages.\n\t%s", tupindex, npages, vac_show_rusage(&ru0)); } *************** *** 589,595 **** stats->num_pages, stats->num_index_tuples, false); ! elog(MESSAGE_LEVEL, "Index %s: Pages %u; Tuples %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples, vac_show_rusage(&ru0)); --- 581,587 ---- stats->num_pages, stats->num_index_tuples, false); ! elog(INFO, "Index %s: Pages %u; Tuples %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples, vac_show_rusage(&ru0)); *************** *** 636,642 **** stats->num_pages, stats->num_index_tuples, false); ! elog(MESSAGE_LEVEL, "Index %s: Pages %u; Tuples %.0f: Deleted %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples, stats->tuples_removed, vac_show_rusage(&ru0)); --- 628,634 ---- stats->num_pages, stats->num_index_tuples, false); ! elog(INFO, "Index %s: Pages %u; Tuples %.0f: Deleted %.0f.\n\t%s", RelationGetRelationName(indrel), stats->num_pages, stats->num_index_tuples, stats->tuples_removed, vac_show_rusage(&ru0)); *************** *** 746,752 **** * We keep the exclusive lock until commit (perhaps not necessary)? */ ! elog(MESSAGE_LEVEL, "Truncated %u --> %u pages.\n\t%s", old_rel_pages, new_rel_pages, vac_show_rusage(&ru0)); } --- 738,744 ---- * We keep the exclusive lock until commit (perhaps not necessary)? */ ! elog(INFO, "Truncated %u --> %u pages.\n\t%s", old_rel_pages, new_rel_pages, vac_show_rusage(&ru0)); } Index: src/backend/commands/variable.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/commands/variable.c,v retrieving revision 1.57 diff -c -r1.57 variable.c *** src/backend/commands/variable.c 2001/12/09 04:37:50 1.57 --- src/backend/commands/variable.c 2002/02/19 04:55:13 *************** *** 295,301 **** strcat(buf, ((EuroDates) ? "European" : "US (NonEuropean)")); strcat(buf, " conventions"); ! elog(NOTICE, buf, NULL); return TRUE; } --- 295,301 ---- strcat(buf, ((EuroDates) ? "European" : "US (NonEuropean)")); strcat(buf, " conventions"); ! elog(INFO, buf, NULL); return TRUE; } *************** *** 482,490 **** tzn = getenv("TZ"); if (tzn != NULL) ! elog(NOTICE, "Time zone is '%s'", tzn); else ! elog(NOTICE, "Time zone is unset"); return TRUE; } /* show_timezone() */ --- 482,490 ---- tzn = getenv("TZ"); if (tzn != NULL) ! elog(INFO, "Time zone is '%s'", tzn); else ! elog(INFO, "Time zone is unset"); return TRUE; } /* show_timezone() */ *************** *** 576,584 **** { if (XactIsoLevel == XACT_SERIALIZABLE) ! elog(NOTICE, "TRANSACTION ISOLATION LEVEL is SERIALIZABLE"); else ! elog(NOTICE, "TRANSACTION ISOLATION LEVEL is READ COMMITTED"); return TRUE; } --- 576,584 ---- { if (XactIsoLevel == XACT_SERIALIZABLE) ! elog(INFO, "TRANSACTION ISOLATION LEVEL is SERIALIZABLE"); else ! elog(INFO, "TRANSACTION ISOLATION LEVEL is READ COMMITTED"); return TRUE; } *************** *** 623,629 **** static bool show_random_seed(void) { ! elog(NOTICE, "Seed for random number generator is unavailable"); return (TRUE); } --- 623,629 ---- static bool show_random_seed(void) { ! elog(INFO, "Seed for random number generator is unavailable"); return (TRUE); } *************** *** 690,696 **** static bool show_client_encoding(void) { ! elog(NOTICE, "Current client encoding is '%s'", pg_get_client_encoding_name()); return TRUE; } --- 690,696 ---- static bool show_client_encoding(void) { ! elog(INFO, "Current client encoding is '%s'", pg_get_client_encoding_name()); return TRUE; } *************** *** 727,747 **** static bool parse_server_encoding(List *args) { ! elog(NOTICE, "SET SERVER_ENCODING is not supported"); return TRUE; } static bool show_server_encoding(void) { ! elog(NOTICE, "Current server encoding is '%s'", GetDatabaseEncodingName()); return TRUE; } static bool reset_server_encoding(void) { ! elog(NOTICE, "RESET SERVER_ENCODING is not supported"); return TRUE; } --- 727,747 ---- static bool parse_server_encoding(List *args) { ! elog(INFO, "SET SERVER_ENCODING is not supported"); return TRUE; } static bool show_server_encoding(void) { ! elog(INFO, "Current server encoding is '%s'", GetDatabaseEncodingName()); return TRUE; } static bool reset_server_encoding(void) { ! elog(INFO, "RESET SERVER_ENCODING is not supported"); return TRUE; } *************** *** 814,820 **** { const char *val = GetConfigOption(name); ! elog(NOTICE, "%s is %s", name, val); } } --- 814,820 ---- { const char *val = GetConfigOption(name); ! elog(INFO, "%s is %s", name, val); } } Index: src/backend/parser/analyze.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/parser/analyze.c,v retrieving revision 1.213 diff -c -r1.213 analyze.c *** src/backend/parser/analyze.c 2002/01/03 23:21:31 1.213 --- src/backend/parser/analyze.c 2002/02/19 04:55:15 *************** *** 823,829 **** sequence->istemp = cxt->istemp; sequence->options = NIL; ! elog(NOTICE, "%s will create implicit sequence '%s' for SERIAL column '%s.%s'", cxt->stmtType, sequence->seqname, cxt->relname, column->colname); cxt->blist = lappend(cxt->blist, sequence); --- 823,829 ---- sequence->istemp = cxt->istemp; sequence->options = NIL; ! elog(INFO, "%s will create implicit sequence '%s' for SERIAL column '%s.%s'", cxt->stmtType, sequence->seqname, cxt->relname, column->colname); cxt->blist = lappend(cxt->blist, sequence); *************** *** 1238,1244 **** elog(ERROR, "%s: failed to make implicit index name", cxt->stmtType); ! elog(NOTICE, "%s / %s%s will create implicit index '%s' for table '%s'", cxt->stmtType, (strcmp(cxt->stmtType, "ALTER TABLE") == 0) ? "ADD " : "", (index->primary ? "PRIMARY KEY" : "UNIQUE"), --- 1238,1244 ---- elog(ERROR, "%s: failed to make implicit index name", cxt->stmtType); ! elog(INFO, "%s / %s%s will create implicit index '%s' for table '%s'", cxt->stmtType, (strcmp(cxt->stmtType, "ALTER TABLE") == 0) ? "ADD " : "", (index->primary ? "PRIMARY KEY" : "UNIQUE"), *************** *** 1262,1268 **** if (cxt->fkconstraints == NIL) return; ! elog(NOTICE, "%s will create implicit trigger(s) for FOREIGN KEY check(s)", cxt->stmtType); foreach(fkclist, cxt->fkconstraints) --- 1262,1268 ---- if (cxt->fkconstraints == NIL) return; ! elog(INFO, "%s will create implicit trigger(s) for FOREIGN KEY check(s)", cxt->stmtType); foreach(fkclist, cxt->fkconstraints) *************** *** 2681,2687 **** elog(ERROR, "unsupported expression in %%TYPE"); v = (Var *) n; tyn = typeidTypeName(v->vartype); ! elog(NOTICE, "%s.%s%%TYPE converted to %s", tn->name, tn->attrname, tyn); tn->name = tyn; tn->typmod = v->vartypmod; tn->attrname = NULL; --- 2681,2687 ---- elog(ERROR, "unsupported expression in %%TYPE"); v = (Var *) n; tyn = typeidTypeName(v->vartype); ! elog(INFO, "%s.%s%%TYPE converted to %s", tn->name, tn->attrname, tyn); tn->name = tyn; tn->typmod = v->vartypmod; tn->attrname = NULL; Index: src/backend/parser/gram.y =================================================================== RCS file: /cvsroot/pgsql/src/backend/parser/gram.y,v retrieving revision 2.277 diff -c -r2.277 gram.y *** src/backend/parser/gram.y 2002/02/18 06:49:20 2.277 --- src/backend/parser/gram.y 2002/02/19 04:55:18 *************** *** 1310,1316 **** n->constraints = $3; if ($4 != NULL) ! elog(NOTICE,"CREATE TABLE / COLLATE %s not yet implemented" "; clause ignored", $4); $$ = (Node *)n; --- 1310,1316 ---- n->constraints = $3; if ($4 != NULL) ! elog(INFO,"CREATE TABLE / COLLATE %s not yet implemented" "; clause ignored", $4); $$ = (Node *)n; *************** *** 2308,2314 **** | RELATIVE { $$ = RELATIVE; } | ABSOLUTE { ! elog(NOTICE,"FETCH / ABSOLUTE not supported, using RELATIVE"); $$ = RELATIVE; } ; --- 2308,2314 ---- | RELATIVE { $$ = RELATIVE; } | ABSOLUTE { ! elog(INFO,"FETCH / ABSOLUTE not supported, using RELATIVE"); $$ = RELATIVE; } ; Index: src/backend/parser/parse_relation.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/parser/parse_relation.c,v retrieving revision 1.60 diff -c -r1.60 parse_relation.c *** src/backend/parser/parse_relation.c 2001/11/05 17:46:26 1.60 --- src/backend/parser/parse_relation.c 2002/02/19 04:55:19 *************** *** 1041,1047 **** } } if (foundInFromCl) ! elog(NOTICE, "Adding missing FROM-clause entry%s for table \"%s\"", pstate->parentParseState != NULL ? " in subquery" : "", refname); } --- 1041,1047 ---- } } if (foundInFromCl) ! elog(INFO, "Adding missing FROM-clause entry%s for table \"%s\"", pstate->parentParseState != NULL ? " in subquery" : "", refname); } Index: src/backend/postmaster/postmaster.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v retrieving revision 1.264 diff -c -r1.264 postmaster.c *** src/backend/postmaster/postmaster.c 2002/01/10 01:11:45 1.264 --- src/backend/postmaster/postmaster.c 2002/02/19 04:55:20 *************** *** 1442,1448 **** break; if (ShutdownPID > 0) { ! elog(REALLYFATAL, "shutdown process %d already running", ShutdownPID); abort(); } --- 1442,1448 ---- break; if (ShutdownPID > 0) { ! elog(CRASH, "shutdown process %d already running", ShutdownPID); abort(); } *************** *** 1486,1492 **** break; if (ShutdownPID > 0) { ! elog(REALLYFATAL, "shutdown process %d already running", ShutdownPID); abort(); } --- 1486,1492 ---- break; if (ShutdownPID > 0) { ! elog(CRASH, "shutdown process %d already running", ShutdownPID); abort(); } *************** *** 1590,1596 **** { if (ShutdownPID > 0) { ! elog(STOP, "startup process %d died while shutdown process %d already running", pid, ShutdownPID); abort(); } --- 1590,1596 ---- { if (ShutdownPID > 0) { ! elog(CRASH, "startup process %d died while shutdown process %d already running", pid, ShutdownPID); abort(); } Index: src/backend/storage/buffer/bufmgr.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v retrieving revision 1.120 diff -c -r1.120 bufmgr.c *** src/backend/storage/buffer/bufmgr.c 2001/11/10 23:51:14 1.120 --- src/backend/storage/buffer/bufmgr.c 2002/02/19 04:55:22 *************** *** 443,449 **** */ if (buf->flags & BM_JUST_DIRTIED) { ! elog(STOP, "BufferAlloc: content of block %u (%u/%u) changed while flushing", buf->tag.blockNum, buf->tag.rnode.tblNode, buf->tag.rnode.relNode); } --- 443,449 ---- */ if (buf->flags & BM_JUST_DIRTIED) { ! elog(CRASH, "BufferAlloc: content of block %u (%u/%u) changed while flushing", buf->tag.blockNum, buf->tag.rnode.tblNode, buf->tag.rnode.relNode); } *************** *** 804,810 **** } if (status == SM_FAIL) /* disk failure ?! */ ! elog(STOP, "BufferSync: cannot write %u for %u/%u", bufHdr->tag.blockNum, bufHdr->tag.rnode.tblNode, bufHdr->tag.rnode.relNode); --- 804,810 ---- } if (status == SM_FAIL) /* disk failure ?! */ ! elog(CRASH, "BufferSync: cannot write %u for %u/%u", bufHdr->tag.blockNum, bufHdr->tag.rnode.tblNode, bufHdr->tag.rnode.relNode); *************** *** 1566,1572 **** (char *) MAKE_PTR(bufHdr->data)); if (status == SM_FAIL) /* disk failure ?! */ ! elog(STOP, "FlushRelationBuffers: cannot write %u for %u/%u", bufHdr->tag.blockNum, bufHdr->tag.rnode.tblNode, bufHdr->tag.rnode.relNode); --- 1566,1572 ---- (char *) MAKE_PTR(bufHdr->data)); if (status == SM_FAIL) /* disk failure ?! */ ! elog(CRASH, "FlushRelationBuffers: cannot write %u for %u/%u", bufHdr->tag.blockNum, bufHdr->tag.rnode.tblNode, bufHdr->tag.rnode.relNode); Index: src/backend/storage/lmgr/proc.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v retrieving revision 1.117 diff -c -r1.117 proc.c *** src/backend/storage/lmgr/proc.c 2001/12/28 18:16:43 1.117 --- src/backend/storage/lmgr/proc.c 2002/02/19 04:55:23 *************** *** 211,217 **** * we are a backend, we inherit this by fork() from the postmaster). */ if (procglobal == NULL) ! elog(STOP, "InitProcess: Proc Header uninitialized"); if (MyProc != NULL) elog(ERROR, "InitProcess: you already exist"); --- 211,217 ---- * we are a backend, we inherit this by fork() from the postmaster). */ if (procglobal == NULL) ! elog(CRASH, "InitProcess: Proc Header uninitialized"); if (MyProc != NULL) elog(ERROR, "InitProcess: you already exist"); *************** *** 300,306 **** * inherit this by fork() from the postmaster). */ if (ProcGlobal == NULL || DummyProc == NULL) ! elog(STOP, "InitDummyProcess: Proc Header uninitialized"); if (MyProc != NULL) elog(ERROR, "InitDummyProcess: you already exist"); --- 300,306 ---- * inherit this by fork() from the postmaster). */ if (ProcGlobal == NULL || DummyProc == NULL) ! elog(CRASH, "InitDummyProcess: Proc Header uninitialized"); if (MyProc != NULL) elog(ERROR, "InitDummyProcess: you already exist"); Index: src/backend/storage/smgr/smgr.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v retrieving revision 1.54 diff -c -r1.54 smgr.c *** src/backend/storage/smgr/smgr.c 2001/10/25 05:49:43 1.54 --- src/backend/storage/smgr/smgr.c 2002/02/19 04:55:23 *************** *** 582,588 **** if (smgrsw[i].smgr_sync) { if ((*(smgrsw[i].smgr_sync)) () == SM_FAIL) ! elog(STOP, "storage sync failed on %s: %m", DatumGetCString(DirectFunctionCall1(smgrout, Int16GetDatum(i)))); } --- 582,588 ---- if (smgrsw[i].smgr_sync) { if ((*(smgrsw[i].smgr_sync)) () == SM_FAIL) ! elog(CRASH, "storage sync failed on %s: %m", DatumGetCString(DirectFunctionCall1(smgrout, Int16GetDatum(i)))); } Index: src/backend/tcop/postgres.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/tcop/postgres.c,v retrieving revision 1.245 diff -c -r1.245 postgres.c *** src/backend/tcop/postgres.c 2002/01/10 01:11:45 1.245 --- src/backend/tcop/postgres.c 2002/02/19 04:55:24 *************** *** 2027,2036 **** if (assert_enabled) { /* val != 0 should be trapped by previous Assert */ ! elog(NOTICE, "Assert test successfull (val = %d)", val); } else ! elog(NOTICE, "Assert checking is disabled (val = %d)", val); return val; } --- 2027,2036 ---- if (assert_enabled) { /* val != 0 should be trapped by previous Assert */ ! elog(INFO, "Assert test successfull (val = %d)", val); } else ! elog(INFO, "Assert checking is disabled (val = %d)", val); return val; } Index: src/backend/utils/adt/selfuncs.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v retrieving revision 1.103 diff -c -r1.103 selfuncs.c *** src/backend/utils/adt/selfuncs.c 2002/01/03 04:02:34 1.103 --- src/backend/utils/adt/selfuncs.c 2002/02/19 04:55:26 *************** *** 2923,2929 **** return (bool) result; localeptr = setlocale(LC_COLLATE, NULL); if (!localeptr) ! elog(STOP, "Invalid LC_COLLATE setting"); /* * Currently we accept only "C" and "POSIX" (do any systems still --- 2923,2929 ---- return (bool) result; localeptr = setlocale(LC_COLLATE, NULL); if (!localeptr) ! elog(CRASH, "Invalid LC_COLLATE setting"); /* * Currently we accept only "C" and "POSIX" (do any systems still Index: src/backend/utils/error/elog.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/error/elog.c,v retrieving revision 1.91 diff -c -r1.91 elog.c *** src/backend/utils/error/elog.c 2001/11/05 17:46:30 1.91 --- src/backend/utils/error/elog.c 2002/02/19 04:55:27 *************** *** 109,115 **** * Note that we use malloc() not palloc() because we want to retain * control if we run out of memory. palloc() would recursively call * elog(ERROR), which would be all right except if we are working on a ! * FATAL or REALLYFATAL error. We'd lose track of the fatal condition * and report a mere ERROR to outer loop, which would be a Bad Thing. * So, we substitute an appropriate message in-place, without * downgrading the level if it's above ERROR. --- 109,115 ---- * Note that we use malloc() not palloc() because we want to retain * control if we run out of memory. palloc() would recursively call * elog(ERROR), which would be all right except if we are working on a ! * FATAL or CRASH error. We'd lose track of the fatal condition * and report a mere ERROR to outer loop, which would be a Bad Thing. * So, we substitute an appropriate message in-place, without * downgrading the level if it's above ERROR. *************** *** 142,154 **** lev = FATAL; /* ! * If we are inside a critical section, all errors become REALLYFATAL * errors. See miscadmin.h. */ if (lev == ERROR || lev == FATAL) { if (CritSectionCount > 0) ! lev = REALLYFATAL; } prefix = elog_message_prefix(lev); --- 142,154 ---- lev = FATAL; /* ! * If we are inside a critical section, all errors become CRASH * errors. See miscadmin.h. */ if (lev == ERROR || lev == FATAL) { if (CritSectionCount > 0) ! lev = CRASH; } prefix = elog_message_prefix(lev); *************** *** 167,178 **** * vsnprintf won't know what to do with %m). To keep space * calculation simple, we only allow one %m. */ ! space_needed = timestamp_size + strlen(prefix) ! + strlen(fmt) + strlen(errorstr) + 1; if (copy_lineno) { ! /* translator: This string will be truncated at 31 characters. */ snprintf(copylineno_buf, 32, gettext("copy: line %d, "), copy_lineno); space_needed += strlen(copylineno_buf); } --- 167,181 ---- * vsnprintf won't know what to do with %m). To keep space * calculation simple, we only allow one %m. */ ! space_needed = timestamp_size + strlen(prefix) + ! strlen(fmt) + strlen(errorstr) + 1; if (copy_lineno) { ! /* ! * Prints the failure line of the COPY. Wow, what a hack! bjm ! * Translators: Error message will be truncated at 31 characters. ! */ snprintf(copylineno_buf, 32, gettext("copy: line %d, "), copy_lineno); space_needed += strlen(copylineno_buf); } *************** *** 184,190 **** { /* We're up against it, convert to out-of-memory error */ fmt_buf = fmt_fixedbuf; ! if (lev != FATAL && lev != REALLYFATAL) { lev = ERROR; prefix = elog_message_prefix(lev); --- 187,193 ---- { /* We're up against it, convert to out-of-memory error */ fmt_buf = fmt_fixedbuf; ! if (lev != FATAL && lev != CRASH) { lev = ERROR; prefix = elog_message_prefix(lev); *************** *** 213,219 **** if (copy_lineno) { strcat(fmt_buf, copylineno_buf); ! if (lev == ERROR || lev == FATAL || lev == REALLYFATAL) copy_lineno = 0; } --- 216,222 ---- if (copy_lineno) { strcat(fmt_buf, copylineno_buf); ! if (lev == ERROR || lev == FATAL || lev == CRASH) copy_lineno = 0; } *************** *** 281,287 **** { /* We're up against it, convert to out-of-memory error */ msg_buf = msg_fixedbuf; ! if (lev != FATAL && lev != REALLYFATAL) { lev = ERROR; prefix = elog_message_prefix(lev); --- 284,290 ---- { /* We're up against it, convert to out-of-memory error */ msg_buf = msg_fixedbuf; ! if (lev != FATAL && lev != CRASH) { lev = ERROR; prefix = elog_message_prefix(lev); *************** *** 312,317 **** --- 315,324 ---- case DEBUG: syslog_level = LOG_DEBUG; break; + case LOG: + case INFO: + syslog_level = LOG_INFO; + break; case NOTICE: syslog_level = LOG_NOTICE; break; *************** *** 321,327 **** case FATAL: syslog_level = LOG_ERR; break; ! case REALLYFATAL: default: syslog_level = LOG_CRIT; break; --- 328,334 ---- case FATAL: syslog_level = LOG_ERR; break; ! case CRASH: default: syslog_level = LOG_CRIT; break; *************** *** 334,344 **** /* syslog doesn't want a trailing newline, but other destinations do */ strcat(msg_buf, "\n"); ! /* write to terminal */ ! if (Use_syslog <= 1 || whereToSendOutput == Debug) write(2, msg_buf, strlen(msg_buf)); ! if (lev > DEBUG && whereToSendOutput == Remote) { /* Send IPC message to the front-end program */ MemoryContext oldcxt; --- 341,352 ---- /* syslog doesn't want a trailing newline, but other destinations do */ strcat(msg_buf, "\n"); ! /* Write to server logs or server terminal */ ! if (lev != INFO && (Use_syslog <= 1 || whereToSendOutput == Debug)) write(2, msg_buf, strlen(msg_buf)); ! /* Should we output to the client too? */ ! if (lev >= INFO && whereToSendOutput == Remote) { /* Send IPC message to the front-end program */ MemoryContext oldcxt; *************** *** 351,357 **** */ oldcxt = MemoryContextSwitchTo(ErrorContext); ! if (lev == NOTICE) /* exclude the timestamp from msg sent to frontend */ send_notice_to_frontend(msg_buf + timestamp_size); else --- 359,365 ---- */ oldcxt = MemoryContextSwitchTo(ErrorContext); ! if (lev <= NOTICE) /* exclude the timestamp from msg sent to frontend */ send_notice_to_frontend(msg_buf + timestamp_size); else *************** *** 414,420 **** * Guard against infinite loop from elog() during error recovery. */ if (InError) ! elog(REALLYFATAL, "elog: error during error recovery, giving up!"); InError = true; /* --- 422,428 ---- * Guard against infinite loop from elog() during error recovery. */ if (InError) ! elog(CRASH, "elog: error during error recovery, giving up!"); InError = true; /* *************** *** 423,429 **** siglongjmp(Warn_restart, 1); } ! if (lev == FATAL || lev == REALLYFATAL) { /* * Serious crash time. Postmaster will observe nonzero process --- 431,437 ---- siglongjmp(Warn_restart, 1); } ! if (lev == FATAL || lev == CRASH) { /* * Serious crash time. Postmaster will observe nonzero process *************** *** 673,682 **** { StringInfoData buf; ! AssertArg(type == NOTICE || type == ERROR); pq_beginmessage(&buf); ! pq_sendbyte(&buf, type == NOTICE ? 'N' : 'E'); pq_sendstring(&buf, msg); pq_endmessage(&buf); --- 681,690 ---- { StringInfoData buf; ! AssertArg(type <= ERROR); pq_beginmessage(&buf); ! pq_sendbyte(&buf, type != ERROR ? 'N' : 'E'); /* No reason to add INFO */ pq_sendstring(&buf, msg); pq_endmessage(&buf); *************** *** 732,750 **** switch (lev) { case DEBUG: ! prefix = gettext("DEBUG: "); break; case NOTICE: prefix = gettext("NOTICE: "); break; case ERROR: ! prefix = gettext("ERROR: "); break; case FATAL: ! prefix = gettext("FATAL 1: "); break; ! case REALLYFATAL: ! prefix = gettext("FATAL 2: "); break; } --- 740,764 ---- switch (lev) { case DEBUG: ! prefix = gettext("DEBUG: "); ! break; ! case LOG: ! prefix = gettext("LOG: "); ! break; ! case INFO: ! prefix = gettext("INFO: "); break; case NOTICE: prefix = gettext("NOTICE: "); break; case ERROR: ! prefix = gettext("ERROR: "); break; case FATAL: ! prefix = gettext("FATAL: "); break; ! case CRASH: ! prefix = gettext("CRASH: "); break; } Index: src/backend/utils/hash/dynahash.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/hash/dynahash.c,v retrieving revision 1.40 diff -c -r1.40 dynahash.c *** src/backend/utils/hash/dynahash.c 2001/10/28 06:25:54 1.40 --- src/backend/utils/hash/dynahash.c 2002/02/19 04:55:32 *************** *** 933,939 **** * systemwide restart. Otherwise, just shut down this one backend. */ if (hashp->isshared) ! elog(STOP, "Hash table '%s' corrupted", hashp->tabname); else elog(FATAL, "Hash table '%s' corrupted", hashp->tabname); } --- 933,939 ---- * systemwide restart. Otherwise, just shut down this one backend. */ if (hashp->isshared) ! elog(CRASH, "Hash table '%s' corrupted", hashp->tabname); else elog(FATAL, "Hash table '%s' corrupted", hashp->tabname); } Index: src/include/utils/elog.h =================================================================== RCS file: /cvsroot/pgsql/src/include/utils/elog.h,v retrieving revision 1.30 diff -c -r1.30 elog.h *** src/include/utils/elog.h 2001/11/05 17:46:36 1.30 --- src/include/utils/elog.h 2002/02/19 04:55:33 *************** *** 15,29 **** #define ELOG_H /* Error level codes */ ! #define NOTICE 0 /* random info, sent to frontend */ ! #define ERROR (-1) /* user error - return to known state */ ! #define FATAL 1 /* fatal error - abort process */ ! #define REALLYFATAL 2 /* take down the other backends with me */ ! #define DEBUG (-2) /* debug message */ ! ! /* temporary nonsense... */ ! #define STOP REALLYFATAL ! #define LOG DEBUG /* Configurable parameters */ #ifdef ENABLE_SYSLOG --- 15,27 ---- #define ELOG_H /* Error level codes */ ! #define DEBUG 0 /* sent only to server logs, label DEBUG */ ! #define LOG 1 /* sent only to server logs, label LOG */ ! #define INFO 2 /* sent only to client */ ! #define NOTICE 3 /* important, sent to both */ ! #define ERROR 4 /* user error - return to known state */ ! #define FATAL 5 /* fatal error - abort process */ ! #define CRASH 6 /* take down the other backends with me */ /* Configurable parameters */ #ifdef ENABLE_SYSLOG