diff options
574 files changed, 26547 insertions, 24071 deletions
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c index 432bfe02ab..20b075d99b 100644 --- a/src/backend/access/common/heaptuple.c +++ b/src/backend/access/common/heaptuple.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.40 1998/09/01 03:20:41 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/heaptuple.c,v 1.41 1998/09/01 04:26:39 momjian Exp $ * * NOTES * The old interface functions have been converted to macros @@ -935,7 +935,8 @@ heap_modifytuple(HeapTuple tuple, (char *) &tuple->t_oid, ((char *) &tuple->t_hoff - (char *) &tuple->t_oid)); /* XXX */ newTuple->t_infomask = infomask; - newTuple->t_natts = numberOfAttributes; /* fix t_natts just in case */ + newTuple->t_natts = numberOfAttributes; /* fix t_natts just in + * case */ return newTuple; } diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c index d9b37bcf87..68459beb01 100644 --- a/src/backend/access/common/printtup.c +++ b/src/backend/access/common/printtup.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.34 1998/09/01 03:20:45 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/printtup.c,v 1.35 1998/09/01 04:26:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -82,8 +82,10 @@ printtup(HeapTuple tuple, TupleDesc typeinfo) Datum attr; bool isnull; Oid typoutput; + #ifdef MULTIBYTE unsigned char *p; + #endif /* ---------------- @@ -147,7 +149,7 @@ printtup(HeapTuple tuple, TupleDesc typeinfo) outputstr = "<unprintable>"; pq_putint(strlen(outputstr) + VARHDRSZ, VARHDRSZ); pq_putnchar(outputstr, strlen(outputstr)); - } + } } } diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index df51228305..4e33e362a1 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.43 1998/09/01 03:20:46 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/common/tupdesc.c,v 1.44 1998/09/01 04:26:41 momjian Exp $ * * NOTES * some of the executor utility code such as "ExecTypeFromTL" should be @@ -75,7 +75,7 @@ CreateTemplateTupleDesc(int natts) * ---------------------------------------------------------------- */ TupleDesc -CreateTupleDesc(int natts, Form_pg_attribute *attrs) +CreateTupleDesc(int natts, Form_pg_attribute * attrs) { TupleDesc desc; diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index f316ba2b3c..cb5917b206 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -33,42 +33,32 @@ #endif /* non-export function prototypes */ -static InsertIndexResult -gistdoinsert(Relation r, IndexTuple itup, +static InsertIndexResult gistdoinsert(Relation r, IndexTuple itup, GISTSTATE *GISTstate); -static InsertIndexResult -gistentryinsert(Relation r, GISTSTACK *stk, +static InsertIndexResult gistentryinsert(Relation r, GISTSTACK *stk, IndexTuple tup, GISTSTATE *giststate); -static void -gistentryinserttwo(Relation r, GISTSTACK *stk, IndexTuple ltup, +static void gistentryinserttwo(Relation r, GISTSTACK *stk, IndexTuple ltup, IndexTuple rtup, GISTSTATE *giststate); -static void -gistAdjustKeys(Relation r, GISTSTACK *stk, BlockNumber blk, +static void gistAdjustKeys(Relation r, GISTSTACK *stk, BlockNumber blk, char *datum, int att_size, GISTSTATE *giststate); -static void -gistintinsert(Relation r, GISTSTACK *stk, IndexTuple ltup, +static void gistintinsert(Relation r, GISTSTACK *stk, IndexTuple ltup, IndexTuple rtup, GISTSTATE *giststate); -static InsertIndexResult -gistSplit(Relation r, Buffer buffer, +static InsertIndexResult gistSplit(Relation r, Buffer buffer, GISTSTACK *stack, IndexTuple itup, GISTSTATE *giststate); -static void -gistnewroot(GISTSTATE *giststate, Relation r, IndexTuple lt, +static void gistnewroot(GISTSTATE *giststate, Relation r, IndexTuple lt, IndexTuple rt); static void GISTInitBuffer(Buffer b, uint32 f); -static BlockNumber -gistChooseSubtree(Relation r, IndexTuple itup, int level, +static BlockNumber gistChooseSubtree(Relation r, IndexTuple itup, int level, GISTSTATE *giststate, GISTSTACK **retstack, Buffer *leafbuf); -static OffsetNumber -gistchoose(Relation r, Page p, IndexTuple it, +static OffsetNumber gistchoose(Relation r, Page p, IndexTuple it, GISTSTATE *giststate); static int gistnospace(Page p, IndexTuple it); void gistdelete(Relation r, ItemPointer tid); static IndexTuple gist_tuple_replacekey(Relation r, GISTENTRY entry, IndexTuple t); -static void -gistcentryinit(GISTSTATE *giststate, GISTENTRY *e, char *pr, +static void gistcentryinit(GISTSTATE *giststate, GISTENTRY *e, char *pr, Relation r, Page pg, OffsetNumber o, int b, bool l); static char *int_range_out(INTRANGE *r); @@ -169,7 +159,7 @@ gistbuild(Relation heap, slot = NULL; econtext = NULL; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ /* int the tuples as we insert them */ nh = ni = 0; @@ -193,7 +183,7 @@ gistbuild(Relation heap, ni++; continue; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -207,7 +197,7 @@ gistbuild(Relation heap, slot->val = htup; if (ExecQual((List *) pred, econtext) == false) continue; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } ni++; @@ -286,7 +276,7 @@ gistbuild(Relation heap, #ifndef OMIT_PARTIAL_INDEX ExecDestroyTupleTable(tupleTable, true); pfree(econtext); -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -1168,7 +1158,7 @@ initGISTstate(GISTSTATE *giststate, Relation index) itupform = (Form_pg_index) GETSTRUCT(htup); if (!HeapTupleIsValid(htup)) elog(ERROR, "initGISTstate: index %d not found", - RelationGetRelid(index)); + RelationGetRelid(index)); giststate->haskeytype = itupform->indhaskeytype; if (giststate->haskeytype) { @@ -1377,4 +1367,4 @@ int_range_out(INTRANGE *r) return result; } -#endif /* defined GISTDEBUG */ +#endif /* defined GISTDEBUG */ diff --git a/src/backend/access/gist/gistget.c b/src/backend/access/gist/gistget.c index d34ee84d76..35708bf653 100644 --- a/src/backend/access/gist/gistget.c +++ b/src/backend/access/gist/gistget.c @@ -28,15 +28,13 @@ #endif -static OffsetNumber -gistfindnext(IndexScanDesc s, Page p, OffsetNumber n, +static OffsetNumber gistfindnext(IndexScanDesc s, Page p, OffsetNumber n, ScanDirection dir); static RetrieveIndexResult gistscancache(IndexScanDesc s, ScanDirection dir); static RetrieveIndexResult gistfirst(IndexScanDesc s, ScanDirection dir); static RetrieveIndexResult gistnext(IndexScanDesc s, ScanDirection dir); static ItemPointer gistheapptr(Relation r, ItemPointer itemp); -static bool -gistindex_keytest(IndexTuple tuple, TupleDesc tupdesc, +static bool gistindex_keytest(IndexTuple tuple, TupleDesc tupdesc, int scanKeySize, ScanKey key, GISTSTATE *giststate, Relation r, Page p, OffsetNumber offset); diff --git a/src/backend/access/gist/gistscan.c b/src/backend/access/gist/gistscan.c index b440cbc5e9..f74316cb33 100644 --- a/src/backend/access/gist/gistscan.c +++ b/src/backend/access/gist/gistscan.c @@ -29,14 +29,11 @@ /* routines defined and used here */ static void gistregscan(IndexScanDesc s); static void gistdropscan(IndexScanDesc s); -static void -gistadjone(IndexScanDesc s, int op, BlockNumber blkno, +static void gistadjone(IndexScanDesc s, int op, BlockNumber blkno, OffsetNumber offnum); -static void -adjuststack(GISTSTACK *stk, BlockNumber blkno, +static void adjuststack(GISTSTACK *stk, BlockNumber blkno, OffsetNumber offnum); -static void -adjustiptr(IndexScanDesc s, ItemPointer iptr, +static void adjustiptr(IndexScanDesc s, ItemPointer iptr, int op, BlockNumber blkno, OffsetNumber offnum); /* diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c index 2a12171d0b..e6ca98c709 100644 --- a/src/backend/access/hash/hash.c +++ b/src/backend/access/hash/hash.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.21 1998/09/01 03:20:53 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.22 1998/09/01 04:26:48 momjian Exp $ * * NOTES * This file contains only the public interface routines. @@ -118,7 +118,7 @@ hashbuild(Relation heap, tupleTable = 0; slot = 0; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ /* build the index */ nhtups = nitups = 0; @@ -145,7 +145,7 @@ hashbuild(Relation heap, nitups++; continue; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -159,7 +159,7 @@ hashbuild(Relation heap, slot->val = htup; if (ExecQual((List *) pred, econtext) == false) continue; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } nitups++; @@ -232,7 +232,7 @@ hashbuild(Relation heap, #ifndef OMIT_PARTIAL_INDEX ExecDestroyTupleTable(tupleTable, true); pfree(econtext); -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c index 9376ad2e57..c2f928161a 100644 --- a/src/backend/access/hash/hashfunc.c +++ b/src/backend/access/hash/hashfunc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/hash/hashfunc.c,v 1.11 1998/09/01 03:20:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/hash/hashfunc.c,v 1.12 1998/09/01 04:26:49 momjian Exp $ * * NOTES * These functions are stored in pg_amproc. For each operator class @@ -136,11 +136,11 @@ hashoid(Oid key) uint32 hashoid8(Oid *key) { - int i; - uint32 result = 0; + int i; + uint32 result = 0; - for (i=0; i < 8; i++) - result = result ^ (~(uint32)key[i]); + for (i = 0; i < 8; i++) + result = result ^ (~(uint32) key[i]); return result; } diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index bb98e2800c..3b66dd57b2 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.34 1998/09/01 03:21:05 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.35 1998/09/01 04:26:51 momjian Exp $ * * * INTERFACE ROUTINES @@ -109,10 +109,10 @@ static bool ImmediateInvalidation; */ static void initscan(HeapScanDesc scan, - Relation relation, - int atend, - unsigned nkeys, - ScanKey key) + Relation relation, + int atend, + unsigned nkeys, + ScanKey key) { if (!RelationGetNumberOfBlocks(relation)) { @@ -258,7 +258,7 @@ heapgettup(Relation relation, elog(DEBUG, "heapgettup: relation(%c)=`%s', %p", relation->rd_rel->relkind, &relation->rd_rel->relname, snapshot); -#endif /* !defined(HEAPDEBUGALL) */ +#endif /* !defined(HEAPDEBUGALL) */ if (!ItemPointerIsValid(tid)) Assert(!PointerIsValid(tid)); @@ -283,12 +283,12 @@ heapgettup(Relation relation, /* assume it is a valid TID XXX */ if (ItemPointerIsValid(tid) == false) { - *buf= InvalidBuffer; + *buf = InvalidBuffer; return NULL; } *buf = RelationGetBufferWithBuffer(relation, - ItemPointerGetBlockNumber(tid), - *buf); + ItemPointerGetBlockNumber(tid), + *buf); #ifndef NO_BUFFERISVALID if (!BufferIsValid(*buf)) @@ -414,6 +414,7 @@ heapgettup(Relation relation, if (ItemPointerGetBlockNumber(iptr) != page) { + /* * set block id to the correct page number --- this is * a hack to support the virtual fragment concept @@ -762,7 +763,7 @@ elog(DEBUG, "heap_getnext([%s,nkeys=%d],backw=%d) called", \ #define HEAPDEBUG_5 #define HEAPDEBUG_6 #define HEAPDEBUG_7 -#endif /* !defined(HEAPDEBUGALL) */ +#endif /* !defined(HEAPDEBUGALL) */ HeapTuple @@ -990,7 +991,7 @@ heap_getnext(HeapScanDesc scandesc, int backw) * value, and they are required to BuffferRelease() it when they * are done. If they want to make a copy of it before releasing it, * they can call heap_copytyple(). - + * ---------------- */ HeapTuple @@ -1005,8 +1006,8 @@ heap_fetch(Relation relation, HeapTuple tuple; OffsetNumber offnum; - AssertMacro(PointerIsValid(userbuf)); /* see comments above */ - + AssertMacro(PointerIsValid(userbuf)); /* see comments above */ + /* ---------------- * increment access statistics * ---------------- @@ -1074,7 +1075,8 @@ heap_fetch(Relation relation, * ---------------- */ - *userbuf = buffer; /* user is required to ReleaseBuffer() this */ + *userbuf = buffer; /* user is required to ReleaseBuffer() + * this */ return tuple; } @@ -1193,7 +1195,7 @@ heap_delete(Relation relation, ItemPointer tid) { /* XXX L_SH better ??? */ elog(ERROR, "heap_delete: failed ReadBuffer"); } -#endif /* NO_BUFFERISVALID */ +#endif /* NO_BUFFERISVALID */ dp = (PageHeader) BufferGetPage(buf); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(tid)); @@ -1206,10 +1208,11 @@ heap_delete(Relation relation, ItemPointer tid) Assert(HeapTupleIsValid(tp)); if (TupleUpdatedByCurXactAndCmd(tp)) { + /* - Vadim says this is no longer needed 1998/6/15 - elog(NOTICE, "Non-functional delete, tuple already deleted"); - */ + * Vadim says this is no longer needed 1998/6/15 elog(NOTICE, + * "Non-functional delete, tuple already deleted"); + */ if (IsSystemRelationName(RelationGetRelationName(relation)->data)) RelationUnsetLockForWrite(relation); ReleaseBuffer(buf); @@ -1309,7 +1312,7 @@ heap_replace(Relation relation, ItemPointer otid, HeapTuple replace_tuple) /* XXX L_SH better ??? */ elog(ERROR, "amreplace: failed ReadBuffer"); } -#endif /* NO_BUFFERISVALID */ +#endif /* NO_BUFFERISVALID */ dp = (Page) BufferGetPage(buffer); lp = PageGetItemId(dp, ItemPointerGetOffsetNumber(otid)); diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c index fdfbddde91..4c2289ce16 100644 --- a/src/backend/access/index/indexam.c +++ b/src/backend/access/index/indexam.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.24 1998/09/01 03:21:09 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/index/indexam.c,v 1.25 1998/09/01 04:26:55 momjian Exp $ * * INTERFACE ROUTINES * index_open - open an index relation by relationId @@ -112,7 +112,7 @@ CppAsString(x), CppAsString(y)) \ : (void)NULL \ ) - + #define GET_SCAN_PROCEDURE(x,y) \ ( \ procedure = scan->relation->rd_am->y, \ @@ -331,7 +331,7 @@ index_getnext(IndexScanDesc scan, * have the am's gettuple proc do all the work. * ---------------- */ - result = (RetrieveIndexResult)fmgr(procedure, scan, direction); + result = (RetrieveIndexResult) fmgr(procedure, scan, direction); return result; } diff --git a/src/backend/access/index/istrat.c b/src/backend/access/index/istrat.c index b92faa655f..403a51f3ba 100644 --- a/src/backend/access/index/istrat.c +++ b/src/backend/access/index/istrat.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.27 1998/09/01 03:21:10 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.28 1998/09/01 04:26:56 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -29,16 +29,13 @@ #ifdef USE_ASSERT_CHECKING static bool StrategyEvaluationIsValid(StrategyEvaluation evaluation); -static bool -StrategyExpressionIsValid(StrategyExpression expression, +static bool StrategyExpressionIsValid(StrategyExpression expression, StrategyNumber maxStrategy); static ScanKey StrategyMapGetScanKeyEntry(StrategyMap map, StrategyNumber strategyNumber); -static bool -StrategyOperatorIsValid(StrategyOperator operator, +static bool StrategyOperatorIsValid(StrategyOperator operator, StrategyNumber maxStrategy); -static bool -StrategyTermIsValid(StrategyTerm term, +static bool StrategyTermIsValid(StrategyTerm term, StrategyNumber maxStrategy); #endif @@ -378,8 +375,8 @@ RelationInvokeStrategy(Relation relation, termData.degree = 1; strategyMap = IndexStrategyGetStrategyMap(RelationGetIndexStrategy(relation), - evaluation->maxStrategy, - attributeNumber); + evaluation->maxStrategy, + attributeNumber); entry = StrategyMapGetScanKeyEntry(strategyMap, strategy); @@ -456,9 +453,7 @@ RelationInvokeStrategy(Relation relation, } if (index == (*termP)->degree) - { return StrategyTermEvaluate(*termP, strategyMap, left, right); - } termP += 1; } @@ -494,7 +489,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation, else { ScanKeyData scanKeyData; - + ScanKeyEntryInitialize(&scanKeyData, 0, ObjectIdAttributeNumber, F_OIDEQ, @@ -502,7 +497,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation, scan = heap_beginscan(operatorRelation, false, SnapshotNow, 1, &scanKeyData); - + tuple = heap_getnext(scan, 0); } @@ -521,7 +516,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation, if (IsBootstrapProcessingMode()) heap_endscan(scan); - + if (!RegProcedureIsValid(entry->sk_procedure)) { elog(ERROR, @@ -565,7 +560,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy, ScanKeyEntryInitialize(&entry[0], 0, Anum_pg_index_indexrelid, F_OIDEQ, ObjectIdGetDatum(indexObjectId)); - + relation = heap_openr(IndexRelationName); scan = heap_beginscan(relation, false, SnapshotNow, 1, entry); tuple = heap_getnext(scan, 0); @@ -601,7 +596,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy, heap_endscan(scan); heap_close(relation); } - + /* if support routines exist for this access method, load them */ if (maxSupportNumber > 0) { @@ -615,7 +610,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy, relation = heap_openr(AccessMethodProcedureRelationName); for (attributeNumber = 1; attributeNumber <= maxAttributeNumber; - attributeNumber++) + attributeNumber++) { int16 support; Form_pg_amproc form; @@ -723,4 +718,4 @@ IndexStrategyDisplay(IndexStrategy indexStrategy, } } -#endif /* defined(ISTRATDEBUG) */ +#endif /* defined(ISTRATDEBUG) */ diff --git a/src/backend/access/nbtree/nbtcompare.c b/src/backend/access/nbtree/nbtcompare.c index 65db2d3e1a..b4b3156593 100644 --- a/src/backend/access/nbtree/nbtcompare.c +++ b/src/backend/access/nbtree/nbtcompare.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.18 1998/09/01 03:21:12 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtcompare.c,v 1.19 1998/09/01 04:26:59 momjian Exp $ * * NOTES * These functions are stored in pg_amproc. For each operator class @@ -87,10 +87,11 @@ btoidcmp(Oid a, Oid b) int32 btoid8cmp(Oid *a, Oid *b) { - int i; - for (i=0; i < 8; i++) + int i; + + for (i = 0; i < 8; i++) /* we use this because we need the int4gt, etc */ - if (!int4eq(a[i], b[i])) + if (!int4eq(a[i], b[i])) if (int4gt(a[i], b[i])) return 1; else diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index f6a34e97ac..c2fa05eb22 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.29 1998/09/01 03:21:13 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.30 1998/09/01 04:27:01 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -54,7 +54,7 @@ _bt_doinsert(Relation rel, BTItem btitem, bool index_is_unique, Relation heapRel int natts = rel->rd_rel->relnatts; InsertIndexResult res; Buffer buffer; - + itup = &(btitem->bti_itup); /* we need a scan key to do our search, so build one */ diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c index 082cfe3628..d486bb432d 100644 --- a/src/backend/access/nbtree/nbtree.c +++ b/src/backend/access/nbtree/nbtree.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.31 1998/09/01 03:21:16 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.32 1998/09/01 04:27:03 momjian Exp $ * * NOTES * This file contains only the public interface routines. @@ -44,7 +44,7 @@ bool BuildingBtree = false; /* see comment in btbuild() */ bool FastBuild = true; /* use sort/build instead of insertion * build */ -static void _bt_restscan(IndexScanDesc scan); +static void _bt_restscan(IndexScanDesc scan); /* * btbuild() -- build a new btree index. @@ -151,7 +151,7 @@ btbuild(Relation heap, */ usefast = false; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ /* start a heap scan */ /* build the index */ @@ -184,7 +184,7 @@ btbuild(Relation heap, nitups++; continue; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -198,7 +198,7 @@ btbuild(Relation heap, slot->val = htup; if (ExecQual((List *) pred, econtext) == false) continue; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } nitups++; @@ -283,7 +283,7 @@ btbuild(Relation heap, #ifndef OMIT_PARTIAL_INDEX ExecDestroyTupleTable(tupleTable, true); pfree(econtext); -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -361,14 +361,13 @@ btinsert(Relation rel, Datum *datum, char *nulls, ItemPointer ht_ctid, Relation /* * See comments in btbuild. * - * if (itup->t_info & INDEX_NULL_MASK) - return (InsertIndexResult) NULL; + * if (itup->t_info & INDEX_NULL_MASK) return (InsertIndexResult) NULL; */ btitem = _bt_formitem(itup); res = _bt_doinsert(rel, btitem, - IndexIsUnique(RelationGetRelid(rel)), heapRel); + IndexIsUnique(RelationGetRelid(rel)), heapRel); pfree(btitem); pfree(itup); @@ -397,27 +396,26 @@ btgettuple(IndexScanDesc scan, ScanDirection dir) if (ItemPointerIsValid(&(scan->currentItemData))) { + /* * Now we don't adjust scans on insertion (comments in - * nbtscan.c:_bt_scandel()) and I hope that we will unlock - * current index page before leaving index in LLL: this - * means that current index tuple could be moved right - * before we get here and we have to restore our scan - * position. We save heap TID pointed by current index - * tuple and use it. This will work untill we start - * to re-use (move heap tuples) without vacuum... - * - vadim 07/29/98 + * nbtscan.c:_bt_scandel()) and I hope that we will unlock current + * index page before leaving index in LLL: this means that current + * index tuple could be moved right before we get here and we have + * to restore our scan position. We save heap TID pointed by + * current index tuple and use it. This will work untill we start + * to re-use (move heap tuples) without vacuum... - vadim 07/29/98 */ _bt_restscan(scan); res = _bt_next(scan, dir); } else res = _bt_first(scan, dir); - + /* Save heap TID to use it in _bt_restscan */ if (res) - ((BTScanOpaque)scan->opaque)->curHeapIptr = res->heap_iptr; - + ((BTScanOpaque) scan->opaque)->curHeapIptr = res->heap_iptr; + return (char *) res; } @@ -627,33 +625,34 @@ btdelete(Relation rel, ItemPointer tid) static void _bt_restscan(IndexScanDesc scan) { - Relation rel = scan->relation; - BTScanOpaque so = (BTScanOpaque) scan->opaque; - Buffer buf = so->btso_curbuf; - Page page = BufferGetPage(buf); - ItemPointer current = &(scan->currentItemData); - OffsetNumber offnum = ItemPointerGetOffsetNumber(current), - maxoff = PageGetMaxOffsetNumber(page); - BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page); - ItemPointerData target = so->curHeapIptr; - BTItem item; - BlockNumber blkno; + Relation rel = scan->relation; + BTScanOpaque so = (BTScanOpaque) scan->opaque; + Buffer buf = so->btso_curbuf; + Page page = BufferGetPage(buf); + ItemPointer current = &(scan->currentItemData); + OffsetNumber offnum = ItemPointerGetOffsetNumber(current), + maxoff = PageGetMaxOffsetNumber(page); + BTPageOpaque opaque = (BTPageOpaque) PageGetSpecialPointer(page); + ItemPointerData target = so->curHeapIptr; + BTItem item; + BlockNumber blkno; if (maxoff >= offnum) { - /* - * if the item is where we left it or has just moved right - * on this page, we're done + + /* + * if the item is where we left it or has just moved right on this + * page, we're done */ - for ( ; + for (; offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { item = (BTItem) PageGetItem(page, PageGetItemId(page, offnum)); if (item->bti_itup.t_tid.ip_blkid.bi_hi == \ - target.ip_blkid.bi_hi && \ + target.ip_blkid.bi_hi && \ item->bti_itup.t_tid.ip_blkid.bi_lo == \ - target.ip_blkid.bi_lo && \ + target.ip_blkid.bi_lo && \ item->bti_itup.t_tid.ip_posid == target.ip_posid) { current->ip_posid = offnum; @@ -662,8 +661,8 @@ _bt_restscan(IndexScanDesc scan) } } - /* - * By here, the item we're looking for moved right at least one page + /* + * By here, the item we're looking for moved right at least one page */ for (;;) { @@ -678,15 +677,15 @@ _bt_restscan(IndexScanDesc scan) opaque = (BTPageOpaque) PageGetSpecialPointer(page); /* see if it's on this page */ - for (offnum = P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY ; + for (offnum = P_RIGHTMOST(opaque) ? P_HIKEY : P_FIRSTKEY; offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { item = (BTItem) PageGetItem(page, PageGetItemId(page, offnum)); if (item->bti_itup.t_tid.ip_blkid.bi_hi == \ - target.ip_blkid.bi_hi && \ + target.ip_blkid.bi_hi && \ item->bti_itup.t_tid.ip_blkid.bi_lo == \ - target.ip_blkid.bi_lo && \ + target.ip_blkid.bi_lo && \ item->bti_itup.t_tid.ip_posid == target.ip_posid) { ItemPointerSet(current, blkno, offnum); diff --git a/src/backend/access/nbtree/nbtscan.c b/src/backend/access/nbtree/nbtscan.c index 11b7659376..55869592e4 100644 --- a/src/backend/access/nbtree/nbtscan.c +++ b/src/backend/access/nbtree/nbtscan.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.17 1998/09/01 03:21:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/Attic/nbtscan.c,v 1.18 1998/09/01 04:27:04 momjian Exp $ * * * NOTES @@ -166,10 +166,10 @@ _bt_scandel(IndexScanDesc scan, int op, BlockNumber blkno, OffsetNumber offno) so->btso_curbuf = buf; if (ItemPointerIsValid(current)) { - Page page = BufferGetPage(buf); - BTItem btitem = (BTItem) PageGetItem(page, - PageGetItemId(page, ItemPointerGetOffsetNumber(current))); - + Page page = BufferGetPage(buf); + BTItem btitem = (BTItem) PageGetItem(page, + PageGetItemId(page, ItemPointerGetOffsetNumber(current))); + so->curHeapIptr = btitem->bti_itup.t_tid; } } @@ -209,10 +209,10 @@ _bt_scandel(IndexScanDesc scan, int op, BlockNumber blkno, OffsetNumber offno) scan->currentItemData = tmp; if (ItemPointerIsValid(current)) { - Page page = BufferGetPage(buf); - BTItem btitem = (BTItem) PageGetItem(page, - PageGetItemId(page, ItemPointerGetOffsetNumber(current))); - + Page page = BufferGetPage(buf); + BTItem btitem = (BTItem) PageGetItem(page, + PageGetItemId(page, ItemPointerGetOffsetNumber(current))); + so->mrkHeapIptr = btitem->bti_itup.t_tid; } } diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c index 8584f20587..6e6732010d 100644 --- a/src/backend/access/nbtree/nbtsearch.c +++ b/src/backend/access/nbtree/nbtsearch.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.37 1998/09/01 03:21:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtsearch.c,v 1.38 1998/09/01 04:27:06 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -28,14 +28,11 @@ #endif -static BTStack -_bt_searchr(Relation rel, int keysz, ScanKey scankey, +static BTStack _bt_searchr(Relation rel, int keysz, ScanKey scankey, Buffer *bufP, BTStack stack_in); -static OffsetNumber -_bt_firsteq(Relation rel, TupleDesc itupdesc, Page page, +static OffsetNumber _bt_firsteq(Relation rel, TupleDesc itupdesc, Page page, Size keysz, ScanKey scankey, OffsetNumber offnum); -static int -_bt_compare(Relation rel, TupleDesc itupdesc, Page page, +static int _bt_compare(Relation rel, TupleDesc itupdesc, Page page, int keysz, ScanKey scankey, OffsetNumber offnum); static bool _bt_twostep(IndexScanDesc scan, Buffer *bufP, ScanDirection dir); @@ -219,8 +216,8 @@ _bt_moveright(Relation rel, if (_bt_skeycmp(rel, keysz, scankey, page, PageGetItemId(page, P_FIRSTKEY), BTEqualStrategyNumber)) - elog(FATAL, "btree: BTP_CHAIN flag was expected in %s (access = %s)", - rel->rd_rel->relname, access ? "bt_write" : "bt_read"); + elog(FATAL, "btree: BTP_CHAIN flag was expected in %s (access = %s)", + rel->rd_rel->relname, access ? "bt_write" : "bt_read"); if (_bt_skeycmp(rel, keysz, scankey, page, PageGetItemId(page, offmax), BTEqualStrategyNumber)) diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c index 5fb3145c36..30d74ced97 100644 --- a/src/backend/access/nbtree/nbtsort.c +++ b/src/backend/access/nbtree/nbtsort.c @@ -5,7 +5,7 @@ * * * IDENTIFICATION - * $Id: nbtsort.c,v 1.32 1998/09/01 03:21:19 momjian Exp $ + * $Id: nbtsort.c,v 1.33 1998/09/01 04:27:07 momjian Exp $ * * NOTES * @@ -184,7 +184,7 @@ _bt_isortcmp(BTSortKey *k1, BTSortKey *k2) return 1; /* 1 > 2 */ } else if (k2->btsk_item == (BTItem) NULL) - return -1; /* 1 < 2 */ + return -1; /* 1 < 2 */ for (i = 0; i < _bt_nattr; i++) { @@ -198,14 +198,14 @@ _bt_isortcmp(BTSortKey *k1, BTSortKey *k2) return 1; /* NULL ">" NOT_NULL */ } else if (k2_nulls[i] != ' ') /* k2 attr is NULL */ - return -1; /* NOT_NULL "<" NULL */ + return -1; /* NOT_NULL "<" NULL */ if (_bt_invokestrat(_bt_sortrel, i + 1, BTGreaterStrategyNumber, k1_datum[i], k2_datum[i])) return 1; /* 1 > 2 */ else if (_bt_invokestrat(_bt_sortrel, i + 1, BTGreaterStrategyNumber, k2_datum[i], k1_datum[i])) - return -1; /* 1 < 2 */ + return -1; /* 1 < 2 */ } if (_bt_inspool->isunique && !equal_isnull) @@ -731,7 +731,7 @@ _bt_spool(Relation index, BTItem btitem, void *spool) printf("_bt_spool: inserted <%x> into output tape %d\n", d, btspool->bts_tape); } -#endif /* FASTBUILD_DEBUG && FASTBUILD_SPOOL */ +#endif /* FASTBUILD_DEBUG && FASTBUILD_SPOOL */ } /* @@ -975,7 +975,7 @@ _bt_buildadd(Relation index, void *pstate, BTItem bti, int flags) printf("_bt_buildadd: moved <%x> to offset %d at level %d\n", d, n, state->btps_level); } -#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ +#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ #endif } @@ -1058,7 +1058,7 @@ _bt_buildadd(Relation index, void *pstate, BTItem bti, int flags) printf("_bt_buildadd: inserted <%x> at offset %d at level %d\n", d, off, state->btps_level); } -#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ +#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ #endif if (last_bti == (BTItem) NULL) first_off = P_FIRSTKEY; @@ -1254,7 +1254,7 @@ _bt_merge(Relation index, BTSpool *btspool) npass, nruns, d, t, BufferGetBlockNumber(state->btps_buf)); } -#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ +#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ } else { @@ -1283,7 +1283,7 @@ _bt_merge(Relation index, BTSpool *btspool) npass, nruns, d, t, btspool->bts_tape); } -#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ +#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ } if (btsk.btsk_datum != (Datum *) NULL) @@ -1408,7 +1408,7 @@ _bt_upperbuild(Relation index) printf("_bt_upperbuild: inserting <%x> at %d\n", d, state->btps_level); } -#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ +#endif /* FASTBUILD_DEBUG && FASTBUILD_MERGE */ _bt_buildadd(index, state, nbti, 0); pfree((void *) nbti); } diff --git a/src/backend/access/rtree/rtget.c b/src/backend/access/rtree/rtget.c index 644240e650..4df0adf5c4 100644 --- a/src/backend/access/rtree/rtget.c +++ b/src/backend/access/rtree/rtget.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtget.c,v 1.11 1998/09/01 03:21:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtget.c,v 1.12 1998/09/01 04:27:09 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -27,8 +27,7 @@ #endif -static OffsetNumber -findnext(IndexScanDesc s, Page p, OffsetNumber n, +static OffsetNumber findnext(IndexScanDesc s, Page p, OffsetNumber n, ScanDirection dir); static RetrieveIndexResult rtscancache(IndexScanDesc s, ScanDirection dir); static RetrieveIndexResult rtfirst(IndexScanDesc s, ScanDirection dir); diff --git a/src/backend/access/rtree/rtree.c b/src/backend/access/rtree/rtree.c index 2352b9b7e7..a9b2eff681 100644 --- a/src/backend/access/rtree/rtree.c +++ b/src/backend/access/rtree/rtree.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.27 1998/09/01 03:21:27 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.28 1998/09/01 04:27:10 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -50,25 +50,19 @@ typedef struct RTSTATE } RTSTATE; /* non-export function prototypes */ -static InsertIndexResult -rtdoinsert(Relation r, IndexTuple itup, +static InsertIndexResult rtdoinsert(Relation r, IndexTuple itup, RTSTATE *rtstate); -static void -rttighten(Relation r, RTSTACK *stk, char *datum, int att_size, +static void rttighten(Relation r, RTSTACK *stk, char *datum, int att_size, RTSTATE *rtstate); -static InsertIndexResult -dosplit(Relation r, Buffer buffer, RTSTACK *stack, +static InsertIndexResult dosplit(Relation r, Buffer buffer, RTSTACK *stack, IndexTuple itup, RTSTATE *rtstate); -static void -rtintinsert(Relation r, RTSTACK *stk, IndexTuple ltup, +static void rtintinsert(Relation r, RTSTACK *stk, IndexTuple ltup, IndexTuple rtup, RTSTATE *rtstate); static void rtnewroot(Relation r, IndexTuple lt, IndexTuple rt); -static void -picksplit(Relation r, Page page, SPLITVEC *v, IndexTuple itup, +static void picksplit(Relation r, Page page, SPLITVEC *v, IndexTuple itup, RTSTATE *rtstate); static void RTInitBuffer(Buffer b, uint32 f); -static OffsetNumber -choose(Relation r, Page p, IndexTuple it, +static OffsetNumber choose(Relation r, Page p, IndexTuple it, RTSTATE *rtstate); static int nospace(Page p, IndexTuple it); static void initRtstate(RTSTATE *rtstate, Relation index); @@ -163,12 +157,12 @@ rtbuild(Relation heap, tupleTable = NULL; slot = NULL; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ /* count the tuples as we insert them */ nh = ni = 0; - scan = heap_beginscan(heap, 0, SnapshotNow, 0, (ScanKey) NULL); + scan = heap_beginscan(heap, 0, SnapshotNow, 0, (ScanKey) NULL); while (HeapTupleIsValid(htup = heap_getnext(scan, 0))) { @@ -188,7 +182,7 @@ rtbuild(Relation heap, ni++; continue; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -202,7 +196,7 @@ rtbuild(Relation heap, slot->val = htup; if (ExecQual((List *) pred, econtext) == false) continue; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } ni++; @@ -263,7 +257,7 @@ rtbuild(Relation heap, #ifndef OMIT_PARTIAL_INDEX ExecDestroyTupleTable(tupleTable, true); pfree(econtext); -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -1042,4 +1036,4 @@ _rtdump(Relation r) } } -#endif /* defined RTDEBUG */ +#endif /* defined RTDEBUG */ diff --git a/src/backend/access/rtree/rtscan.c b/src/backend/access/rtree/rtscan.c index 21e1f1c311..6d0bb632e7 100644 --- a/src/backend/access/rtree/rtscan.c +++ b/src/backend/access/rtree/rtscan.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.18 1998/09/01 03:21:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtscan.c,v 1.19 1998/09/01 04:27:12 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -30,14 +30,11 @@ /* routines defined and used here */ static void rtregscan(IndexScanDesc s); static void rtdropscan(IndexScanDesc s); -static void -rtadjone(IndexScanDesc s, int op, BlockNumber blkno, +static void rtadjone(IndexScanDesc s, int op, BlockNumber blkno, OffsetNumber offnum); -static void -adjuststack(RTSTACK *stk, BlockNumber blkno, +static void adjuststack(RTSTACK *stk, BlockNumber blkno, OffsetNumber offnum); -static void -adjustiptr(IndexScanDesc s, ItemPointer iptr, +static void adjustiptr(IndexScanDesc s, ItemPointer iptr, int op, BlockNumber blkno, OffsetNumber offnum); /* diff --git a/src/backend/access/rtree/rtstrat.c b/src/backend/access/rtree/rtstrat.c index 04c5728888..f610bfc2ed 100644 --- a/src/backend/access/rtree/rtstrat.c +++ b/src/backend/access/rtree/rtstrat.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtstrat.c,v 1.9 1998/09/01 03:21:30 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtstrat.c,v 1.10 1998/09/01 04:27:13 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -18,8 +18,7 @@ #include <access/rtree.h> #include <access/istrat.h> -static StrategyNumber -RelationGetRTStrategy(Relation r, +static StrategyNumber RelationGetRTStrategy(Relation r, AttrNumber attnum, RegProcedure proc); /* diff --git a/src/backend/access/transam/transam.c b/src/backend/access/transam/transam.c index 284400116d..5bcce3c2d7 100644 --- a/src/backend/access/transam/transam.c +++ b/src/backend/access/transam/transam.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/transam.c,v 1.18 1998/09/01 03:21:31 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/transam.c,v 1.19 1998/09/01 04:27:15 momjian Exp $ * * NOTES * This file contains the high level access-method interface to the @@ -29,8 +29,7 @@ static int RecoveryCheckingEnabled(void); static void TransRecover(Relation logRelation); static bool TransactionLogTest(TransactionId transactionId, XidStatus status); -static void -TransactionLogUpdate(TransactionId transactionId, +static void TransactionLogUpdate(TransactionId transactionId, XidStatus status); /* ---------------- diff --git a/src/backend/access/transam/transsup.c b/src/backend/access/transam/transsup.c index 51879019c8..6f1b09b577 100644 --- a/src/backend/access/transam/transsup.c +++ b/src/backend/access/transam/transsup.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/transsup.c,v 1.16 1998/01/07 21:02:19 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/transsup.c,v 1.17 1998/09/01 04:27:16 momjian Exp $ * * NOTES * This file contains support functions for the high @@ -23,11 +23,9 @@ #include <access/xact.h> #include <storage/lmgr.h> -static XidStatus -TransBlockGetXidStatus(Block tblock, +static XidStatus TransBlockGetXidStatus(Block tblock, TransactionId transactionId); -static void -TransBlockSetXidStatus(Block tblock, +static void TransBlockSetXidStatus(Block tblock, TransactionId transactionId, XidStatus xstatus); /* ---------------------------------------------------------------- diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index ef669df70e..2c49c05c12 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.16 1998/07/21 06:17:13 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.17 1998/09/01 04:27:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -31,7 +31,7 @@ static void VariableRelationPutNextOid(Oid *oidP); */ int OidGenLockId; -VariableCache ShmemVariableCache = NULL; +VariableCache ShmemVariableCache = NULL; /* ---------------------------------------------------------------- * variable relation query/update routines @@ -292,11 +292,11 @@ GetNewTransactionId(TransactionId *xid) } SpinAcquire(OidGenLockId); /* not good for concurrency... */ - + if (ShmemVariableCache->xid_count == 0) { TransactionId nextid; - + VariableRelationGetNextXid(&nextid); TransactionIdStore(nextid, &(ShmemVariableCache->nextXid)); ShmemVariableCache->xid_count = VAR_XID_PREFETCH; @@ -307,7 +307,7 @@ GetNewTransactionId(TransactionId *xid) TransactionIdStore(ShmemVariableCache->nextXid, xid); TransactionIdAdd(&(ShmemVariableCache->nextXid), 1); (ShmemVariableCache->xid_count)--; - + SpinRelease(OidGenLockId); } diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index e40f49fc87..d082c805cd 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.22 1998/09/01 03:21:33 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.23 1998/09/01 04:27:19 momjian Exp $ * * NOTES * Transaction aborts can now occur two ways: @@ -898,7 +898,7 @@ CommitTransaction() * ---------------- */ - /* handle commit for large objects [ PA, 7/17/98 ] */ + /* handle commit for large objects [ PA, 7/17/98 ] */ _lo_commit(); CloseSequences(); diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index 18497cb2f2..2f8fd05310 100644 --- a/src/backend/bootstrap/bootstrap.c +++ b/src/backend/bootstrap/bootstrap.c @@ -7,7 +7,7 @@ * Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.50 1998/09/01 03:21:36 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.51 1998/09/01 04:27:21 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -325,7 +325,8 @@ BootstrapMain(int argc, char *argv[]) DataDir = optarg; break; case 'd': - DebugMode = true; /* print out debugging info while parsing */ + DebugMode = true; /* print out debugging info while + * parsing */ break; case 'C': Noversion = true; @@ -601,7 +602,7 @@ DefineAttr(char *name, char *type, int attnum) printf("<%s %s> ", attrtypes[attnum]->attname.data, type); attrtypes[attnum]->attnum = 1 + attnum; /* fillatt */ attlen = attrtypes[attnum]->attlen = Procid[typeoid].len; - attrtypes[attnum]->attbyval = (attlen == 1) || (attlen == 2) ||(attlen == 4); + attrtypes[attnum]->attbyval = (attlen == 1) || (attlen == 2) || (attlen == 4); attrtypes[attnum]->attalign = 'i'; } attrtypes[attnum]->attcacheoff = -1; diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 3d778d2609..d432269a36 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.15 1998/09/01 03:21:38 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.16 1998/09/01 04:27:27 momjian Exp $ * * NOTES * See acl.h. @@ -185,7 +185,7 @@ get_grosysid(char *groname) tuple = SearchSysCacheTuple(GRONAME, PointerGetDatum(groname), - 0, 0, 0); + 0, 0, 0); if (HeapTupleIsValid(tuple)) id = ((Form_pg_group) GETSTRUCT(tuple))->grosysid; else @@ -201,7 +201,7 @@ get_groname(AclId grosysid) tuple = SearchSysCacheTuple(GROSYSID, ObjectIdGetDatum(grosysid), - 0, 0, 0); + 0, 0, 0); if (HeapTupleIsValid(tuple)) name = (((Form_pg_group) GETSTRUCT(tuple))->groname).data; else @@ -229,13 +229,13 @@ in_group(AclId uid, AclId gid) } tuple = SearchSysCacheTuple(GROSYSID, ObjectIdGetDatum(gid), - 0, 0, 0); + 0, 0, 0); if (HeapTupleIsValid(tuple) && !heap_attisnull(tuple, Anum_pg_group_grolist)) { tmp = (IdList *) heap_getattr(tuple, Anum_pg_group_grolist, - RelationGetDescr(relation), + RelationGetDescr(relation), (bool *) NULL); /* XXX make me a function */ num = IDLIST_NUM(tmp); @@ -369,7 +369,7 @@ pg_aclcheck(char *relname, char *usename, AclMode mode) tuple = SearchSysCacheTuple(USENAME, PointerGetDatum(usename), - 0, 0, 0); + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "pg_aclcheck: user \"%s\" not found", usename); @@ -420,8 +420,8 @@ pg_aclcheck(char *relname, char *usename, AclMode mode) #ifndef ACLDEBUG tuple = SearchSysCacheTuple(RELNAME, - PointerGetDatum(relname), - 0, 0, 0); + PointerGetDatum(relname), + 0, 0, 0); if (!HeapTupleIsValid(tuple)) { elog(ERROR, "pg_aclcheck: class \"%s\" not found", @@ -450,10 +450,10 @@ pg_aclcheck(char *relname, char *usename, AclMode mode) relation = heap_openr(RelationRelationName); ownerId = (int4) heap_getattr(tuple, - Anum_pg_class_relowner, - RelationGetDescr(relation), - (bool *) NULL); - acl = aclownerdefault(relname, (AclId)ownerId); + Anum_pg_class_relowner, + RelationGetDescr(relation), + (bool *) NULL); + acl = aclownerdefault(relname, (AclId) ownerId); } #else { /* This is why the syscache is great... */ @@ -469,14 +469,14 @@ pg_aclcheck(char *relname, char *usename, AclMode mode) return ACLCHECK_NO_CLASS; } tuple = SearchSysCacheTuple(RELNAME, - PointerGetDatum(relname), - 0, 0, 0); + PointerGetDatum(relname), + 0, 0, 0); if (HeapTupleIsValid(tuple) && !heap_attisnull(tuple, Anum_pg_class_relacl)) { tmp = (Acl *) heap_getattr(tuple, Anum_pg_class_relacl, - RelationGetDescr(relation), + RelationGetDescr(relation), (bool *) NULL); acl = makeacl(ACL_NUM(tmp)); memmove((char *) acl, (char *) tmp, ACL_SIZE(tmp)); @@ -501,7 +501,7 @@ pg_ownercheck(char *usename, tuple = SearchSysCacheTuple(USENAME, PointerGetDatum(usename), - 0, 0, 0); + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "pg_ownercheck: user \"%s\" not found", usename); @@ -520,7 +520,7 @@ pg_ownercheck(char *usename, } tuple = SearchSysCacheTuple(cacheid, PointerGetDatum(value), - 0, 0, 0); + 0, 0, 0); switch (cacheid) { case OPROID: @@ -568,7 +568,7 @@ pg_func_ownercheck(char *usename, tuple = SearchSysCacheTuple(USENAME, PointerGetDatum(usename), - 0, 0, 0); + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "pg_func_ownercheck: user \"%s\" not found", usename); @@ -587,10 +587,10 @@ pg_func_ownercheck(char *usename, } tuple = SearchSysCacheTuple(PRONAME, - PointerGetDatum(funcname), - Int32GetDatum(nargs), - PointerGetDatum(arglist), - 0); + PointerGetDatum(funcname), + Int32GetDatum(nargs), + PointerGetDatum(arglist), + 0); if (!HeapTupleIsValid(tuple)) func_error("pg_func_ownercheck", funcname, nargs, arglist, NULL); @@ -610,7 +610,7 @@ pg_aggr_ownercheck(char *usename, tuple = SearchSysCacheTuple(USENAME, PointerGetDatum(usename), - 0, 0, 0); + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "pg_aggr_ownercheck: user \"%s\" not found", usename); @@ -629,9 +629,9 @@ pg_aggr_ownercheck(char *usename, } tuple = SearchSysCacheTuple(AGGNAME, - PointerGetDatum(aggname), - ObjectIdGetDatum(basetypeID), - 0, 0); + PointerGetDatum(aggname), + ObjectIdGetDatum(basetypeID), + 0, 0); if (!HeapTupleIsValid(tuple)) agg_error("pg_aggr_ownercheck", aggname, basetypeID); diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c index 5db4be0310..cb9d5ff836 100644 --- a/src/backend/catalog/catalog.c +++ b/src/backend/catalog/catalog.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.17 1998/09/01 03:21:40 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/catalog.c,v 1.18 1998/09/01 04:27:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -174,7 +174,7 @@ fillatt(TupleDesc tupleDesc) for (i = 0; i < natts;) { tuple = SearchSysCacheTuple(TYPOID, - ObjectIdGetDatum((*attributeP)->atttypid), + ObjectIdGetDatum((*attributeP)->atttypid), 0, 0, 0); if (!HeapTupleIsValid(tuple)) { @@ -193,7 +193,7 @@ fillatt(TupleDesc tupleDesc) */ if (!(*attributeP)->attisset) { - typp = (Form_pg_type) GETSTRUCT(tuple); /* XXX */ + typp = (Form_pg_type) GETSTRUCT(tuple); /* XXX */ (*attributeP)->attlen = typp->typlen; (*attributeP)->attbyval = typp->typbyval; } diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index d6c252f7ba..bcac947978 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -7,12 +7,12 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.63 1998/09/01 03:21:41 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.64 1998/09/01 04:27:29 momjian Exp $ * * INTERFACE ROUTINES * heap_create() - Create an uncataloged heap relation * heap_create_with_catalog() - Create a cataloged relation - * heap_destroy_with_catalog() - Removes named relation from catalogs + * heap_destroy_with_catalog() - Removes named relation from catalogs * * NOTES * this code taken from access/heap/create.c, which contains @@ -65,10 +65,9 @@ #include <string.h> #endif -static void -AddPgRelationTuple(Relation pg_class_desc, - Relation new_rel_desc, Oid new_rel_oid, unsigned natts, - char relkind); +static void AddPgRelationTuple(Relation pg_class_desc, + Relation new_rel_desc, Oid new_rel_oid, unsigned natts, + char relkind); static void AddToTempRelList(Relation r); static void DeletePgAttributeTuples(Relation rel); static void DeletePgRelationTuple(Relation rel); @@ -317,7 +316,7 @@ heap_create(char *name, * ---------------- */ - rel->rd_tmpunlinked = TRUE; /* change once table is created */ + rel->rd_tmpunlinked = TRUE; /* change once table is created */ rel->rd_fd = (File) smgrcreate(DEFAULT_SMGR, rel); rel->rd_tmpunlinked = FALSE; @@ -479,8 +478,8 @@ RelationAlreadyExists(Relation pg_class_desc, char *relname) if (!IsBootstrapProcessingMode()) { tup = SearchSysCacheTuple(RELNAME, - PointerGetDatum(relname), - 0, 0, 0); + PointerGetDatum(relname), + 0, 0, 0); if (HeapTupleIsValid(tup)) return true; else @@ -878,7 +877,7 @@ RelationRemoveInheritance(Relation relation) HeapScanDesc scan; ScanKeyData entry; bool found = false; - + /* ---------------- * open pg_inherits * ---------------- @@ -892,7 +891,7 @@ RelationRemoveInheritance(Relation relation) */ ScanKeyEntryInitialize(&entry, 0x0, Anum_pg_inherits_inhparent, F_OIDEQ, - ObjectIdGetDatum(RelationGetRelid(relation))); + ObjectIdGetDatum(RelationGetRelid(relation))); scan = heap_beginscan(catalogRelation, false, @@ -972,10 +971,10 @@ RelationRemoveIndexes(Relation relation) ScanKeyData entry; indexRelation = heap_openr(IndexRelationName); - + ScanKeyEntryInitialize(&entry, 0x0, Anum_pg_index_indrelid, F_OIDEQ, - ObjectIdGetDatum(RelationGetRelid(relation))); + ObjectIdGetDatum(RelationGetRelid(relation))); scan = heap_beginscan(indexRelation, false, @@ -1008,8 +1007,8 @@ DeletePgRelationTuple(Relation rel) pg_class_desc = heap_openr(RelationRelationName); tup = SearchSysCacheTupleCopy(RELOID, - ObjectIdGetDatum(rel->rd_att->attrs[0]->attrelid), - 0, 0, 0); + ObjectIdGetDatum(rel->rd_att->attrs[0]->attrelid), + 0, 0, 0); if (!HeapTupleIsValid(tup)) { heap_close(pg_class_desc); @@ -1023,7 +1022,7 @@ DeletePgRelationTuple(Relation rel) */ heap_delete(pg_class_desc, &tup->t_ctid); pfree(tup); - + heap_close(pg_class_desc); } @@ -1038,7 +1037,7 @@ DeletePgAttributeTuples(Relation rel) Relation pg_attribute_desc; HeapTuple tup; int2 attnum; - + /* ---------------- * open pg_attribute * ---------------- @@ -1052,19 +1051,19 @@ DeletePgAttributeTuples(Relation rel) RelationSetLockForWrite(pg_attribute_desc); for (attnum = FirstLowInvalidHeapAttributeNumber + 1; - attnum <= rel->rd_att->natts; - attnum++) + attnum <= rel->rd_att->natts; + attnum++) { if (HeapTupleIsValid(tup = SearchSysCacheTupleCopy(ATTNUM, - ObjectIdGetDatum(RelationGetRelid(rel)), - Int16GetDatum(attnum), - 0, 0))) + ObjectIdGetDatum(RelationGetRelid(rel)), + Int16GetDatum(attnum), + 0, 0))) { heap_delete(pg_attribute_desc, &tup->t_ctid); pfree(tup); } } - + /* ---------------- * Release the write lock * ---------------- @@ -1107,9 +1106,9 @@ DeletePgTypeTuple(Relation rel) * ---------------- */ ScanKeyEntryInitialize(&key, 0, - Anum_pg_type_typrelid, - F_OIDEQ, - ObjectIdGetDatum(RelationGetRelid(rel))); + Anum_pg_type_typrelid, + F_OIDEQ, + ObjectIdGetDatum(RelationGetRelid(rel))); pg_type_scan = heap_beginscan(pg_type_desc, 0, @@ -1470,7 +1469,7 @@ start:; } } else if ((exprType(expr) != atp->atttypid) - && !IS_BINARY_COMPATIBLE(exprType(expr), atp->atttypid)) + && !IS_BINARY_COMPATIBLE(exprType(expr), atp->atttypid)) elog(ERROR, "DEFAULT: type mismatched"); adbin = nodeToString(expr); diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index ad8725a254..7d98a51bc5 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.59 1998/09/01 03:21:43 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.60 1998/09/01 04:27:31 momjian Exp $ * * * INTERFACE ROUTINES @@ -65,32 +65,28 @@ /* non-export function prototypes */ static Oid -RelationNameGetObjectId(char *relationName, Relation pg_class); + RelationNameGetObjectId(char *relationName, Relation pg_class); static Oid GetHeapRelationOid(char *heapRelationName, char *indexRelationName); static TupleDesc BuildFuncTupleDesc(FuncIndexInfo *funcInfo); -static TupleDesc -ConstructTupleDescriptor(Oid heapoid, Relation heapRelation, +static TupleDesc ConstructTupleDescriptor(Oid heapoid, Relation heapRelation, List *attributeList, int numatts, AttrNumber *attNums); static void ConstructIndexReldesc(Relation indexRelation, Oid amoid); static Oid UpdateRelationRelation(Relation indexRelation); -static void -InitializeAttributeOids(Relation indexRelation, +static void InitializeAttributeOids(Relation indexRelation, int numatts, Oid indexoid); static void AppendAttributeTuples(Relation indexRelation, int numatts); -static void -UpdateIndexRelation(Oid indexoid, Oid heapoid, +static void UpdateIndexRelation(Oid indexoid, Oid heapoid, FuncIndexInfo *funcInfo, int natts, - AttrNumber *attNums, Oid *classOids, Node *predicate, + AttrNumber *attNums, Oid *classOids, Node *predicate, List *attributeList, bool islossy, bool unique); -static void -DefaultBuild(Relation heapRelation, Relation indexRelation, +static void DefaultBuild(Relation heapRelation, Relation indexRelation, int numberOfAttributes, AttrNumber *attributeNumber, IndexStrategy indexStrategy, uint16 parameterCount, - Datum *parameter, FuncIndexInfoPtr funcInfo, PredInfo *predInfo); + Datum *parameter, FuncIndexInfoPtr funcInfo, PredInfo *predInfo); /* ---------------------------------------------------------------- * sysatts is a structure containing attribute tuple forms @@ -147,12 +143,12 @@ RelationNameGetObjectId(char *relationName, if (!IsBootstrapProcessingMode()) { - HeapTuple tuple; - + HeapTuple tuple; + tuple = SearchSysCacheTuple(RELNAME, PointerGetDatum(relationName), 0, 0, 0); - + if (HeapTupleIsValid(tuple)) return tuple->t_oid; else @@ -614,7 +610,9 @@ static void AppendAttributeTuples(Relation indexRelation, int numatts) { Relation pg_attribute; - HeapTuple init_tuple, cur_tuple = NULL, new_tuple; + HeapTuple init_tuple, + cur_tuple = NULL, + new_tuple; bool hasind; Relation idescs[Num_pg_attr_indices]; @@ -651,8 +649,8 @@ AppendAttributeTuples(Relation indexRelation, int numatts) value[Anum_pg_attribute_attcacheoff - 1] = Int32GetDatum(-1); init_tuple = heap_addheader(Natts_pg_attribute, - sizeof *(indexRelation->rd_att->attrs[0]), - (char *) (indexRelation->rd_att->attrs[0])); + sizeof *(indexRelation->rd_att->attrs[0]), + (char *) (indexRelation->rd_att->attrs[0])); hasind = false; if (!IsBootstrapProcessingMode() && pg_attribute->rd_rel->relhasindex) @@ -666,12 +664,12 @@ AppendAttributeTuples(Relation indexRelation, int numatts) * ---------------- */ cur_tuple = heap_modifytuple(init_tuple, - pg_attribute, - value, - nullv, - replace); + pg_attribute, + value, + nullv, + replace); pfree(init_tuple); - + heap_insert(pg_attribute, cur_tuple); if (hasind) CatalogIndexInsert(idescs, Num_pg_attr_indices, pg_attribute, cur_tuple); @@ -696,13 +694,13 @@ AppendAttributeTuples(Relation indexRelation, int numatts) value[Anum_pg_attribute_attnum - 1] = Int16GetDatum(i + 1); new_tuple = heap_modifytuple(cur_tuple, - pg_attribute, - value, - nullv, - replace); + pg_attribute, + value, + nullv, + replace); pfree(cur_tuple); - heap_insert(pg_attribute,new_tuple); + heap_insert(pg_attribute, new_tuple); if (hasind) CatalogIndexInsert(idescs, Num_pg_attr_indices, pg_attribute, new_tuple); @@ -711,7 +709,7 @@ AppendAttributeTuples(Relation indexRelation, int numatts) * so we free the original and use the copy.. * ---------------- */ - cur_tuple = new_tuple; + cur_tuple = new_tuple; } if (cur_tuple) @@ -898,10 +896,10 @@ UpdateIndexPredicate(Oid indexoid, Node *oldPred, Node *predicate) pg_index = heap_openr(IndexRelationName); tuple = SearchSysCacheTuple(INDEXRELID, - ObjectIdGetDatum(indexoid), - 0, 0, 0); + ObjectIdGetDatum(indexoid), + 0, 0, 0); Assert(HeapTupleIsValid(tuple)); - + for (i = 0; i < Natts_pg_index; i++) { nulls[i] = heap_attisnull(tuple, i + 1) ? 'n' : ' '; @@ -1103,7 +1101,7 @@ index_create(char *heapRelationName, if (!HeapTupleIsValid(proc_tup)) { func_error("index_create", FIgetname(funcInfo), - FIgetnArgs(funcInfo), FIgetArglist(funcInfo), NULL); + FIgetnArgs(funcInfo), FIgetArglist(funcInfo), NULL); } FIgetProcOid(funcInfo) = proc_tup->t_oid; } @@ -1178,7 +1176,7 @@ index_destroy(Oid indexId) Relation attributeRelation; HeapTuple tuple; int16 attnum; - + Assert(OidIsValid(indexId)); /* why open it here? bjm 1998/08/20 */ @@ -1206,12 +1204,12 @@ index_destroy(Oid indexId) */ attributeRelation = heap_openr(AttributeRelationName); - attnum = 1; /* indexes start at 1 */ + attnum = 1; /* indexes start at 1 */ while (HeapTupleIsValid(tuple = SearchSysCacheTupleCopy(ATTNUM, - ObjectIdGetDatum(indexId), - Int16GetDatum(attnum), - 0, 0))) + ObjectIdGetDatum(indexId), + Int16GetDatum(attnum), + 0, 0))) { heap_delete(attributeRelation, &tuple->t_ctid); pfree(tuple); @@ -1224,15 +1222,15 @@ index_destroy(Oid indexId) * ---------------- */ tuple = SearchSysCacheTupleCopy(INDEXRELID, - ObjectIdGetDatum(indexId), - 0, 0, 0); + ObjectIdGetDatum(indexId), + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(NOTICE, "IndexRelationDestroy: %s's INDEX tuple missing", RelationGetRelationName(userindexRelation)); indexRelation = heap_openr(IndexRelationName); - + heap_delete(indexRelation, &tuple->t_ctid); pfree(tuple); heap_close(indexRelation); @@ -1281,12 +1279,12 @@ FormIndexDatum(int numberOfAttributes, { offset = AttrNumberGetAttrOffset(i); - datum[offset] = PointerGetDatum(GetIndexValue(heapTuple, - heapDescriptor, - offset, - attributeNumber, - fInfo, - &isNull)); + datum[offset] = PointerGetDatum(GetIndexValue(heapTuple, + heapDescriptor, + offset, + attributeNumber, + fInfo, + &isNull)); nullv[offset] = (isNull) ? 'n' : ' '; } @@ -1311,7 +1309,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex) Datum values[Natts_pg_class]; char nulls[Natts_pg_class]; char replace[Natts_pg_class]; - HeapScanDesc pg_class_scan = NULL; + HeapScanDesc pg_class_scan = NULL; /* ---------------- * This routine handles updates for both the heap and index relation @@ -1356,14 +1354,14 @@ UpdateStats(Oid relid, long reltuples, bool hasindex) ScanKeyData key[1]; ScanKeyEntryInitialize(&key[0], 0, - ObjectIdAttributeNumber, - F_OIDEQ, - ObjectIdGetDatum(relid)); + ObjectIdAttributeNumber, + F_OIDEQ, + ObjectIdGetDatum(relid)); pg_class_scan = heap_beginscan(pg_class, 0, SnapshotNow, 1, key); tuple = heap_getnext(pg_class_scan, 0); } - + if (!HeapTupleIsValid(tuple)) { if (IsBootstrapProcessingMode()) @@ -1436,7 +1434,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex) pfree(tuple); else heap_endscan(pg_class_scan); - + heap_close(pg_class); heap_close(whichRel); } @@ -1478,7 +1476,7 @@ DefaultBuild(Relation heapRelation, AttrNumber *attributeNumber, IndexStrategy indexStrategy, /* not used */ uint16 parameterCount, /* not used */ - Datum *parameter, /* not used */ + Datum *parameter, /* not used */ FuncIndexInfoPtr funcInfo, PredInfo *predInfo) { @@ -1543,7 +1541,7 @@ DefaultBuild(Relation heapRelation, tupleTable = ExecCreateTupleTable(1); slot = ExecAllocTableSlot(tupleTable); econtext = makeNode(ExprContext); - /* last parameter was junk being sent bjm 1998/08/17 */ + /* last parameter was junk being sent bjm 1998/08/17 */ FillDummyExprContext(econtext, slot, heapDescriptor, InvalidBuffer); } else @@ -1552,7 +1550,7 @@ DefaultBuild(Relation heapRelation, tupleTable = 0; slot = NULL; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ /* ---------------- * Ok, begin our scan of the base relation. @@ -1560,7 +1558,7 @@ DefaultBuild(Relation heapRelation, */ scan = heap_beginscan(heapRelation, /* relation */ 0, /* start at end */ - SnapshotNow,/* seeself */ + SnapshotNow, /* seeself */ 0, /* number of keys */ (ScanKey) NULL); /* scan key */ @@ -1591,7 +1589,7 @@ DefaultBuild(Relation heapRelation, indtuples++; continue; } -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } /* @@ -1605,7 +1603,7 @@ DefaultBuild(Relation heapRelation, slot->val = heapTuple; if (ExecQual((List *) predicate, econtext) == false) continue; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } indtuples++; @@ -1643,7 +1641,7 @@ DefaultBuild(Relation heapRelation, { #ifndef OMIT_PARTIAL_INDEX ExecDestroyTupleTable(tupleTable, false); -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } pfree(nullv); diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c index 8fa94148c0..ad66f89269 100644 --- a/src/backend/catalog/indexing.c +++ b/src/backend/catalog/indexing.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.25 1998/09/01 03:21:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.26 1998/09/01 04:27:33 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -126,8 +126,8 @@ CatalogIndexInsert(Relation *idescs, indexDescriptor = RelationGetDescr(idescs[i]); pgIndexTup = SearchSysCacheTupleCopy(INDEXRELID, - ObjectIdGetDatum(idescs[i]->rd_id), - 0, 0, 0); + ObjectIdGetDatum(idescs[i]->rd_id), + 0, 0, 0); Assert(pgIndexTup); pgIndexP = (Form_pg_index) GETSTRUCT(pgIndexTup); @@ -228,7 +228,7 @@ CatalogIndexFetchTuple(Relation heapRelation, RetrieveIndexResult indexRes; HeapTuple tuple = NULL; Buffer buffer; - + sd = index_beginscan(idesc, false, num_keys, skey); while ((indexRes = index_getnext(sd, ForwardScanDirection))) { @@ -239,7 +239,7 @@ CatalogIndexFetchTuple(Relation heapRelation, pfree(indexRes); if (HeapTupleIsValid(tuple)) break; - } + } if (HeapTupleIsValid(tuple)) { @@ -270,13 +270,13 @@ AttributeNameIndexScan(Relation heapRelation, ScanKeyEntryInitialize(&skey[0], (bits16) 0x0, (AttrNumber) 1, - (RegProcedure)F_OIDEQ, + (RegProcedure) F_OIDEQ, ObjectIdGetDatum(relid)); ScanKeyEntryInitialize(&skey[1], (bits16) 0x0, (AttrNumber) 2, - (RegProcedure)F_NAMEEQ, + (RegProcedure) F_NAMEEQ, NameGetDatum(attname)); idesc = index_openr(AttributeNameIndex); @@ -299,13 +299,13 @@ AttributeNumIndexScan(Relation heapRelation, ScanKeyEntryInitialize(&skey[0], (bits16) 0x0, (AttrNumber) 1, - (RegProcedure)F_OIDEQ, + (RegProcedure) F_OIDEQ, ObjectIdGetDatum(relid)); ScanKeyEntryInitialize(&skey[1], (bits16) 0x0, (AttrNumber) 2, - (RegProcedure)F_INT2EQ, + (RegProcedure) F_INT2EQ, Int16GetDatum(attnum)); idesc = index_openr(AttributeNumIndex); diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c index c9370df540..00b16c20f6 100644 --- a/src/backend/catalog/pg_aggregate.c +++ b/src/backend/catalog/pg_aggregate.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.16 1998/09/01 03:21:45 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.17 1998/09/01 04:27:34 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -78,7 +78,7 @@ AggregateCreate(char *aggName, Oid xret2 = InvalidOid; Oid fret = InvalidOid; Oid fnArgs[8]; - NameData aname; + NameData aname; TupleDesc tupDesc; MemSet(fnArgs, 0, 8 * sizeof(Oid)); diff --git a/src/backend/catalog/pg_operator.c b/src/backend/catalog/pg_operator.c index a2123fc7c5..a296c9057c 100644 --- a/src/backend/catalog/pg_operator.c +++ b/src/backend/catalog/pg_operator.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.28 1998/09/01 03:21:47 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.29 1998/09/01 04:27:36 momjian Exp $ * * NOTES * these routines moved here from commands/define.c and somewhat cleaned up. @@ -35,28 +35,23 @@ #include <string.h> #endif -static Oid -OperatorGetWithOpenRelation(Relation pg_operator_desc, +static Oid OperatorGetWithOpenRelation(Relation pg_operator_desc, const char *operatorName, Oid leftObjectId, Oid rightObjectId); -static Oid -OperatorGet(char *operatorName, +static Oid OperatorGet(char *operatorName, char *leftTypeName, char *rightTypeName); -static Oid -OperatorShellMakeWithOpenRelation(Relation pg_operator_desc, +static Oid OperatorShellMakeWithOpenRelation(Relation pg_operator_desc, char *operatorName, Oid leftObjectId, Oid rightObjectId); -static Oid -OperatorShellMake(char *operatorName, +static Oid OperatorShellMake(char *operatorName, char *leftTypeName, char *rightTypeName); -static void -OperatorDef(char *operatorName, +static void OperatorDef(char *operatorName, int definedOK, char *leftTypeName, char *rightTypeName, @@ -120,7 +115,7 @@ OperatorGetWithOpenRelation(Relation pg_operator_desc, */ pg_operator_scan = heap_beginscan(pg_operator_desc, 0, - SnapshotSelf, /* no cache? */ + SnapshotSelf, /* no cache? */ 3, opKey); @@ -475,7 +470,7 @@ OperatorDef(char *operatorName, char *name[4]; Oid typeId[8]; int nargs; - NameData oname; + NameData oname; TupleDesc tupDesc; static ScanKeyData opKey[3] = { @@ -796,7 +791,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId) pg_operator_scan = heap_beginscan(pg_operator_desc, 0, - SnapshotSelf, /* no cache? */ + SnapshotSelf, /* no cache? */ 1, opKey); @@ -872,7 +867,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId) pg_operator_scan = heap_beginscan(pg_operator_desc, 0, - SnapshotSelf, /* no cache? */ + SnapshotSelf, /* no cache? */ 1, opKey); diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index 006286f6f7..074bda3876 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.22 1998/09/01 03:21:48 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.23 1998/09/01 04:27:37 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -129,6 +129,7 @@ ProcedureCreate(char *procedureName, if (!strcmp(languageName, "sql")) { + /* * If this call is defining a set, check if the set is already * defined by looking to see whether this call's function text diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c index 3375cfe591..d9f9023f31 100644 --- a/src/backend/catalog/pg_type.c +++ b/src/backend/catalog/pg_type.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.29 1998/09/01 03:21:49 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.30 1998/09/01 04:27:39 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -33,8 +33,7 @@ #include <string.h> #endif -static Oid -TypeShellMakeWithOpenRelation(Relation pg_type_desc, +static Oid TypeShellMakeWithOpenRelation(Relation pg_type_desc, char *typeName); /* ---------------------------------------------------------------- @@ -178,7 +177,7 @@ TypeShellMakeWithOpenRelation(Relation pg_type_desc, char *typeName) */ i = 0; namestrcpy(&name, typeName); - values[i++] = NameGetDatum(&name); /* 1 */ + values[i++] = NameGetDatum(&name); /* 1 */ values[i++] = (Datum) InvalidOid; /* 2 */ values[i++] = (Datum) (int16) 0; /* 3 */ values[i++] = (Datum) (int16) 0; /* 4 */ @@ -379,17 +378,17 @@ TypeCreate(char *typeName, * ---------------- */ i = 0; - namestrcpy(&name,typeName); + namestrcpy(&name, typeName); values[i++] = NameGetDatum(&name); /* 1 */ values[i++] = (Datum) GetUserId(); /* 2 */ values[i++] = (Datum) internalSize; /* 3 */ values[i++] = (Datum) externalSize; /* 4 */ - values[i++] = (Datum) passedByValue;/* 5 */ + values[i++] = (Datum) passedByValue; /* 5 */ values[i++] = (Datum) typeType; /* 6 */ values[i++] = (Datum) (bool) 1; /* 7 */ values[i++] = (Datum) typDelim; /* 8 */ values[i++] = (Datum) (typeType == 'c' ? relationOid : InvalidOid); /* 9 */ - values[i++] = (Datum) elementObjectId;/* 10 */ + values[i++] = (Datum) elementObjectId; /* 10 */ /* * arguments to type input and output functions must be 0 @@ -431,7 +430,7 @@ TypeCreate(char *typeName, func_error("TypeCreate", procname, 1, argList, NULL); } - values[i++] = (Datum) tup->t_oid; /* 11 - 14 */ + values[i++] = (Datum) tup->t_oid; /* 11 - 14 */ } /* ---------------- @@ -444,7 +443,7 @@ TypeCreate(char *typeName, * initialize the default value for this type. * ---------------- */ - values[i] = (Datum) fmgr(F_TEXTIN, /* 16 */ + values[i] = (Datum) fmgr(F_TEXTIN, /* 16 */ PointerIsValid(defaultTypeValue) ? defaultTypeValue : "-"); /* XXX default * typdefault */ @@ -534,8 +533,9 @@ TypeRename(char *oldTypeName, char *newTypeName) { Relation pg_type_desc; Relation idescs[Num_pg_type_indices]; - HeapTuple oldtup, newtup; - + HeapTuple oldtup, + newtup; + pg_type_desc = heap_openr(TypeRelationName); oldtup = SearchSysCacheTupleCopy(TYPNAME, @@ -547,7 +547,7 @@ TypeRename(char *oldTypeName, char *newTypeName) heap_close(pg_type_desc); elog(ERROR, "TypeRename: type %s not defined", oldTypeName); } - + newtup = SearchSysCacheTuple(TYPNAME, PointerGetDatum(newTypeName), 0, 0, 0); @@ -557,7 +557,7 @@ TypeRename(char *oldTypeName, char *newTypeName) heap_close(pg_type_desc); elog(ERROR, "TypeRename: type %s already defined", newTypeName); } - + namestrcpy(&(((Form_pg_type) GETSTRUCT(oldtup))->typname), newTypeName); setheapoverride(true); diff --git a/src/backend/commands/_deadcode/version.c b/src/backend/commands/_deadcode/version.c index 063b8f2f63..fc7d5dbc4f 100644 --- a/src/backend/commands/_deadcode/version.c +++ b/src/backend/commands/_deadcode/version.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.14 1998/08/19 02:01:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.15 1998/09/01 04:28:09 momjian Exp $ * * NOTES * At the point the version is defined, 2 physical relations are created @@ -303,7 +303,7 @@ VersionDelete(char *vname, char *bname, char *snapshot) vname, vname, vname, bname, bname, snapshot, bname); eval_as_new_xact(rule_buf); -#endif /* OLD_REWRITE */ +#endif /* OLD_REWRITE */ } #endif @@ -355,7 +355,7 @@ VersionReplace(char *vname, char *bname, char *snapshot) vname, vname, vname, attr_list, bname, bname, snapshot, vname, bname); eval_as_new_xact(rule_buf); -#endif /* OLD_REWRITE */ +#endif /* OLD_REWRITE */ /* printf("%s\n",rule_buf); */ } diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index b057455923..1212197717 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.39 1998/09/01 03:21:50 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.40 1998/09/01 04:27:42 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -64,10 +64,10 @@ #include <utils/ps_status.h> #define NotifyUnlock pg_options[OPT_NOTIFYUNLOCK] -#define NotifyHack pg_options[OPT_NOTIFYHACK] +#define NotifyHack pg_options[OPT_NOTIFYHACK] extern TransactionState CurrentTransactionState; -extern CommandDest whereToSendOutput; +extern CommandDest whereToSendOutput; GlobalMemory notifyContext = NULL; @@ -119,7 +119,7 @@ Async_NotifyHandler(SIGNAL_ARGS) else { TPRINTF(TRACE_NOTIFY, "Async_NotifyHandler: " - "process in middle of transaction, state=%d, blockstate=%d", + "process in middle of transaction, state=%d, blockstate=%d", CurrentTransactionState->state, CurrentTransactionState->blockState); notifyFrontEndPending = 1; @@ -213,13 +213,12 @@ Async_Notify(char *relname) heap_endscan(sRel); /* - * Note: if the write lock is unset we can get multiple tuples - * with same oid if other backends notify the same relation. - * Use this option at your own risk. + * Note: if the write lock is unset we can get multiple tuples with + * same oid if other backends notify the same relation. Use this + * option at your own risk. */ - if (NotifyUnlock) { + if (NotifyUnlock) RelationUnsetLockForWrite(lRel); - } heap_close(lRel); @@ -318,12 +317,13 @@ Async_NotifyAtCommit() heap_close(lRel); /* - * Notify the frontend inside the current transaction while - * we still have a valid write lock on pg_listeners. This - * avoid waiting until all other backends have finished - * with pg_listener. + * Notify the frontend inside the current transaction while we + * still have a valid write lock on pg_listeners. This avoid + * waiting until all other backends have finished with + * pg_listener. */ - if (notifyFrontEndPending) { + if (notifyFrontEndPending) + { /* The aux version is called inside transaction */ Async_NotifyFrontEnd_Aux(); } @@ -333,14 +333,14 @@ Async_NotifyAtCommit() } else { + /* - * No notifies issued by us. If notifyFrontEndPending has been set - * by Async_NotifyHandler notify the frontend of pending notifies - * from other backends. + * No notifies issued by us. If notifyFrontEndPending has been + * set by Async_NotifyHandler notify the frontend of pending + * notifies from other backends. */ - if (notifyFrontEndPending) { + if (notifyFrontEndPending) Async_NotifyFrontEnd(); - } } ClearPendingNotify(); @@ -368,7 +368,8 @@ Async_NotifyAtCommit() void Async_NotifyAtAbort() { - if (pendingNotifies) { + if (pendingNotifies) + { ClearPendingNotify(); DLFreeList(pendingNotifies); } @@ -380,9 +381,7 @@ Async_NotifyAtAbort() { /* don't forget to notify front end */ if (notifyFrontEndPending) - { Async_NotifyFrontEnd(); - } } } @@ -423,7 +422,8 @@ Async_Listen(char *relname, int pid) char *relnamei; TupleDesc tupDesc; - if (whereToSendOutput != Remote) { + if (whereToSendOutput != Remote) + { elog(NOTICE, "Async_Listen: " "listen not available on interactive sessions"); return; @@ -459,7 +459,8 @@ Async_Listen(char *relname, int pid) if (pid == MyProcPid) alreadyListener = 1; } - if (alreadyListener) { + if (alreadyListener) + { /* No need to scan the rest of the table */ break; } @@ -521,7 +522,8 @@ Async_Unlisten(char *relname, int pid) HeapTuple lTuple; /* Handle specially the `unlisten "*"' command */ - if ((!relname) || (*relname == '\0') || (strcmp(relname,"*")==0)) { + if ((!relname) || (*relname == '\0') || (strcmp(relname, "*") == 0)) + { Async_UnlistenAll(); return; } @@ -575,15 +577,13 @@ Async_UnlistenAll() sRel = heap_beginscan(lRel, 0, SnapshotNow, 1, key); while (HeapTupleIsValid(lTuple = heap_getnext(sRel, 0))) - { heap_delete(lRel, &lTuple->t_ctid); - } heap_endscan(sRel); RelationUnsetLockForWrite(lRel); heap_close(lRel); TPRINTF(TRACE_NOTIFY, "Async_UnlistenAll: done"); } - + /* * -------------------------------------------------------------- * Async_UnlistenOnExit -- @@ -654,7 +654,7 @@ Async_NotifyFrontEnd_Aux() #define MAX_DONE 64 - char *done[MAX_DONE]; + char *done[MAX_DONE]; int ndone = 0; int i; @@ -687,13 +687,16 @@ Async_NotifyFrontEnd_Aux() &isnull); /* - * This hack deletes duplicate tuples which can be left - * in the table if the NotifyUnlock option is set. - * I'm further investigating this. -- dz + * This hack deletes duplicate tuples which can be left in the + * table if the NotifyUnlock option is set. I'm further + * investigating this. -- dz */ - if (NotifyHack) { - for (i=0; i<ndone; i++) { - if (strcmp(DatumGetName(d)->data, done[i]) == 0) { + if (NotifyHack) + { + for (i = 0; i < ndone; i++) + { + if (strcmp(DatumGetName(d)->data, done[i]) == 0) + { TPRINTF(TRACE_NOTIFY, "Async_NotifyFrontEnd: duplicate %s", DatumGetName(d)->data); @@ -701,9 +704,8 @@ Async_NotifyFrontEnd_Aux() continue; } } - if (ndone < MAX_DONE) { + if (ndone < MAX_DONE) done[ndone++] = pstrdup(DatumGetName(d)->data); - } } rTuple = heap_modifytuple(lTuple, lRel, value, nulls, repl); diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index 928a6b5f6d..415ad4a8df 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -14,7 +14,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.30 1998/09/01 03:21:52 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.31 1998/09/01 04:27:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -47,7 +47,7 @@ #include <optimizer/internal.h> #ifndef NO_SECURITY #include <utils/acl.h> -#endif /* !NO_SECURITY */ +#endif /* !NO_SECURITY */ static Relation copy_heap(Oid OIDOldHeap); static void copy_index(Oid OIDOldIndex, Oid OIDNewHeap); @@ -128,7 +128,8 @@ cluster(char *oldrelname, char *oldindexname) elog(ERROR, "cluster: unknown relation: \"%s\"", oldrelname); } - OIDOldHeap = RelationGetRelid(OldHeap);/* Get OID for the index scan */ + OIDOldHeap = RelationGetRelid(OldHeap); /* Get OID for the index + * scan */ OldIndex = index_openr(oldindexname); /* Open old index relation */ if (!RelationIsValid(OldIndex)) @@ -136,7 +137,7 @@ cluster(char *oldrelname, char *oldindexname) elog(ERROR, "cluster: unknown index: \"%s\"", oldindexname); } - OIDOldIndex = RelationGetRelid(OldIndex); /* OID for the index scan */ + OIDOldIndex = RelationGetRelid(OldIndex); /* OID for the index scan */ heap_close(OldHeap); index_close(OldIndex); diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c index 5fdc9fd0c7..47f6e8ae3c 100644 --- a/src/backend/commands/command.c +++ b/src/backend/commands/command.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.31 1998/09/01 03:21:53 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.32 1998/09/01 04:27:46 momjian Exp $ * * NOTES * The PortalExecutorHeapMemory crap needs to be eliminated @@ -422,16 +422,16 @@ PerformAddAttribute(char *relationName, int attnelems; tup = SearchSysCacheTuple(ATTNAME, - ObjectIdGetDatum(reltup->t_oid), - PointerGetDatum(colDef->colname), - 0, 0); + ObjectIdGetDatum(reltup->t_oid), + PointerGetDatum(colDef->colname), + 0, 0); if (HeapTupleIsValid(tup)) { heap_close(attrdesc); heap_close(rel); elog(ERROR, "PerformAddAttribute: attribute \"%s\" already exists in class \"%s\"", - colDef->colname, relationName); + colDef->colname, relationName); } /* diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index f13a0ece82..2f0b6d2833 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.58 1998/09/01 03:21:55 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.59 1998/09/01 04:27:47 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -52,8 +52,7 @@ static Oid GetOutputFunction(Oid type); static Oid GetTypeElement(Oid type); static Oid GetInputFunction(Oid type); static Oid IsTypeByVal(Oid type); -static void -GetIndexRelations(Oid main_relation_oid, +static void GetIndexRelations(Oid main_relation_oid, int *n_indices, Relation **index_rels); @@ -108,17 +107,17 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe, the class. ----------------------------------------------------------------------------*/ - static FILE *fp; /* static for cleanup */ - static bool file_opened = false; /* static for cleanup */ + static FILE *fp; /* static for cleanup */ + static bool file_opened = false; /* static for cleanup */ Relation rel; extern char *UserName; /* defined in global.c */ const AclMode required_access = from ? ACL_WR : ACL_RD; int result; /* - * Close previous file opened for COPY but failed with elog(). - * There should be a better way, but would not be modular. - * Prevents file descriptor leak. bjm 1998/08/29 + * Close previous file opened for COPY but failed with elog(). There + * should be a better way, but would not be modular. Prevents file + * descriptor leak. bjm 1998/08/29 */ if (file_opened) FreeFile(fp); @@ -449,7 +448,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim) itupdescArr[i] = RelationGetDescr(index_rels[i]); pgIndexTup = SearchSysCacheTuple(INDEXRELID, - ObjectIdGetDatum(RelationGetRelid(index_rels[i])), + ObjectIdGetDatum(RelationGetRelid(index_rels[i])), 0, 0, 0); Assert(pgIndexTup); pgIndexP[i] = (Form_pg_index) GETSTRUCT(pgIndexTup); @@ -500,7 +499,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim) /* SetSlotShouldFree(slot, false); */ slot->ttc_buffer = (Buffer) NULL; slot->ttc_shouldFree = false; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } } else @@ -766,7 +765,7 @@ CopyFrom(Relation rel, bool binary, bool oids, FILE *fp, char *delim) /* SetSlotContents(slot, tuple); */ if (ExecQual((List *) indexPred[i], econtext) == false) continue; -#endif /* OMIT_PARTIAL_INDEX */ +#endif /* OMIT_PARTIAL_INDEX */ } FormIndexDatum(indexNatts[i], (AttrNumber *) &(pgIndexP[i]->indkey[0]), @@ -1022,11 +1021,13 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim) char c; int done = 0; int i = 0; + #ifdef MULTIBYTE - int mblen; - int encoding; - unsigned char s[2]; - int j; + int mblen; + int encoding; + unsigned char s[2]; + int j; + #endif #ifdef MULTIBYTE @@ -1136,22 +1137,23 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim) if (!done) attribute[i++] = c; #ifdef MULTIBYTE - s[0] = c; - mblen = pg_encoding_mblen(encoding, s); - mblen--; - for(j=0;j<mblen;j++) { - c = getc(fp); - if (feof(fp)) - return NULL; - attribute[i++] = c; - } + s[0] = c; + mblen = pg_encoding_mblen(encoding, s); + mblen--; + for (j = 0; j < mblen; j++) + { + c = getc(fp); + if (feof(fp)) + return NULL; + attribute[i++] = c; + } #endif if (i == EXT_ATTLEN - 1) elog(ERROR, "CopyReadAttribute - attribute length too long. line: %d", lineno); } attribute[i] = '\0'; #ifdef MULTIBYTE - return(pg_client_to_server((unsigned char*)attribute, strlen(attribute))); + return (pg_client_to_server((unsigned char *) attribute, strlen(attribute))); #else return &attribute[0]; #endif @@ -1160,13 +1162,14 @@ CopyReadAttribute(FILE *fp, bool *isnull, char *delim) static void CopyAttributeOut(FILE *fp, char *server_string, char *delim, int is_array) { - char *string; + char *string; char c; #ifdef MULTIBYTE - int mblen; - int encoding; - int i; + int mblen; + int encoding; + int i; + #endif #ifdef MULTIBYTE @@ -1178,7 +1181,7 @@ CopyAttributeOut(FILE *fp, char *server_string, char *delim, int is_array) #ifdef MULTIBYTE for (; (mblen = pg_encoding_mblen(encoding, string)) && - ((c = *string) != '\0'); string += mblen) + ((c = *string) != '\0'); string += mblen) #else for (; (c = *string) != '\0'; string++) #endif @@ -1204,9 +1207,8 @@ CopyAttributeOut(FILE *fp, char *server_string, char *delim, int is_array) } } #ifdef MULTIBYTE - for (i=0;i<mblen;i++) { - fputc(*(string+i), fp); - } + for (i = 0; i < mblen; i++) + fputc(*(string + i), fp); #else fputc(*string, fp); #endif diff --git a/src/backend/commands/creatinh.c b/src/backend/commands/creatinh.c index 0286ab4659..ae4495655d 100644 --- a/src/backend/commands/creatinh.c +++ b/src/backend/commands/creatinh.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.33 1998/09/01 03:21:56 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.34 1998/09/01 04:27:49 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -33,8 +33,7 @@ * ---------------- */ -static int -checkAttrExists(char *attributeName, +static int checkAttrExists(char *attributeName, char *attributeType, List *schema); static List *MergeAttributes(List *schema, List *supers, List **supconstr); static void StoreCatalogInheritance(Oid relationId, List *supers); @@ -404,7 +403,7 @@ StoreCatalogInheritance(Oid relationId, List *supers) char nullarr[Natts_pg_inherits]; tuple = SearchSysCacheTuple(RELNAME, - PointerGetDatum(strVal(lfirst(entry))), + PointerGetDatum(strVal(lfirst(entry))), 0, 0, 0); AssertArg(HeapTupleIsValid(tuple)); diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 3954eb78de..5ae406b905 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.23 1998/09/01 03:21:57 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.24 1998/09/01 04:27:51 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -36,8 +36,7 @@ /* non-export function prototypes */ -static void -check_permissions(char *command, char *dbpath, char *dbname, +static void check_permissions(char *command, char *dbpath, char *dbname, Oid *dbIdP, int4 *userIdP); static HeapTuple get_pg_dbtup(char *command, char *dbname, Relation dbrel); static void stop_vacuum(char *dbpath, char *dbname); @@ -46,7 +45,7 @@ void createdb(char *dbname, char *dbpath, int encoding) { Oid db_id; - int4 user_id; + int4 user_id; char buf[512]; char *lp, loc[512]; @@ -100,7 +99,7 @@ createdb(char *dbname, char *dbpath, int encoding) void destroydb(char *dbname) { - int4 user_id; + int4 user_id; Oid db_id; char *path; char dbpath[MAXPGPATH + 1]; @@ -203,8 +202,8 @@ check_permissions(char *command, userName = GetPgUserName(); utup = SearchSysCacheTuple(USENAME, - PointerGetDatum(userName), - 0, 0, 0); + PointerGetDatum(userName), + 0, 0, 0); *userIdP = ((Form_pg_shadow) GETSTRUCT(utup))->usesysid; use_super = ((Form_pg_shadow) GETSTRUCT(utup))->usesuper; use_createdb = ((Form_pg_shadow) GETSTRUCT(utup))->usecreatedb; @@ -249,9 +248,9 @@ check_permissions(char *command, if (dbfound) { dbowner = (int4) heap_getattr(dbtup, - Anum_pg_database_datdba, - RelationGetDescr(dbrel), - (char *) NULL); + Anum_pg_database_datdba, + RelationGetDescr(dbrel), + (char *) NULL); *dbIdP = dbtup->t_oid; dbtext = (text *) heap_getattr(dbtup, Anum_pg_database_datpath, diff --git a/src/backend/commands/defind.c b/src/backend/commands/defind.c index 342a99b127..ab6e26f1e1 100644 --- a/src/backend/commands/defind.c +++ b/src/backend/commands/defind.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/defind.c,v 1.25 1998/09/01 03:21:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/defind.c,v 1.26 1998/09/01 04:27:52 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -41,16 +41,13 @@ /* non-export function prototypes */ static void CheckPredicate(List *predList, List *rangeTable, Oid baseRelOid); -static void -CheckPredExpr(Node *predicate, List *rangeTable, +static void CheckPredExpr(Node *predicate, List *rangeTable, Oid baseRelOid); static void CheckPredClause(Expr *predicate, List *rangeTable, Oid baseRelOid); -static void -FuncIndexArgs(IndexElem *funcIndex, AttrNumber *attNumP, +static void FuncIndexArgs(IndexElem *funcIndex, AttrNumber *attNumP, Oid *argTypes, Oid *opOidP, Oid relId); -static void -NormIndexAttrs(List *attList, AttrNumber *attNumP, +static void NormIndexAttrs(List *attList, AttrNumber *attNumP, Oid *opOidP, Oid relId); static char *GetDefaultOpClass(Oid atttypid); @@ -197,7 +194,7 @@ DefineIndex(char *heapRelationName, else { attributeNumberA = (AttrNumber *) palloc(numberOfAttributes * - sizeof attributeNumberA[0]); + sizeof attributeNumberA[0]); classObjectId = (Oid *) palloc(numberOfAttributes * sizeof classObjectId[0]); @@ -468,7 +465,8 @@ NormIndexAttrs(List *attList, /* list of IndexElem's */ Oid relId) { List *rest; - HeapTuple atttuple, tuple; + HeapTuple atttuple, + tuple; /* * process attributeList @@ -485,9 +483,9 @@ NormIndexAttrs(List *attList, /* list of IndexElem's */ elog(ERROR, "missing attribute for define index"); atttuple = SearchSysCacheTupleCopy(ATTNAME, - ObjectIdGetDatum(relId), - PointerGetDatum(attribute->name), - 0, 0); + ObjectIdGetDatum(relId), + PointerGetDatum(attribute->name), + 0, 0); if (!HeapTupleIsValid(atttuple)) { elog(ERROR, @@ -502,8 +500,8 @@ NormIndexAttrs(List *attList, /* list of IndexElem's */ if (attribute->typename == NULL) { tuple = SearchSysCacheTuple(TYPOID, - ObjectIdGetDatum(attform->atttypid), - 0, 0, 0); + ObjectIdGetDatum(attform->atttypid), + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "create index: type for attribute '%s' undefined", attribute->name); diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 3178dd2d8a..63534050f1 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.23 1998/08/04 16:43:54 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.24 1998/09/01 04:27:53 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -83,7 +83,7 @@ ExplainQuery(Query *query, bool verbose, CommandDest dest) if (es->printNodes) s = nodeToString(plan); - + if (es->printCost) { s2 = Explain_PlanToString(plan, es); @@ -107,7 +107,7 @@ ExplainQuery(Query *query, bool verbose, CommandDest dest) len -= ELOG_MAXLEN - 64; } if (es->printNodes) - pprint(plan); /* display in postmaster log file */ + pprint(plan); /* display in postmaster log file */ pfree(es); } @@ -123,7 +123,7 @@ ExplainQuery(Query *query, bool verbose, CommandDest dest) static void explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es) { - List *l; + List *l; Relation relation; char *pname; char buf[1000]; @@ -280,11 +280,11 @@ explain_outNode(StringInfo str, Plan *plan, int indent, ExplainState *es) List *saved_rtable = es->rtable; List *lst; int whichplan = 0; - Append *appendplan = (Append *)plan; + Append *appendplan = (Append *) plan; foreach(lst, appendplan->appendplans) { - Plan *subnode = (Plan *)lfirst(lst); + Plan *subnode = (Plan *) lfirst(lst); if (appendplan->inheritrelid > 0) { diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index f3c4d4b6e1..86f24d9678 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -162,8 +162,8 @@ DropProceduralLanguage(DropPLangStmt *stmt) case_translate_language_name(stmt->plname, languageName); langTup = SearchSysCacheTupleCopy(LANNAME, - PointerGetDatum(languageName), - 0, 0, 0); + PointerGetDatum(languageName), + 0, 0, 0); if (!HeapTupleIsValid(langTup)) elog(ERROR, "Language %s doesn't exist", languageName); diff --git a/src/backend/commands/recipe.c b/src/backend/commands/recipe.c index 4d06c57feb..f8b7ce15df 100644 --- a/src/backend/commands/recipe.c +++ b/src/backend/commands/recipe.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.23 1998/09/01 03:22:01 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.24 1998/09/01 04:27:56 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -64,39 +64,31 @@ typedef struct _teeInfo QueryTreeList *appendQlist(QueryTreeList *q1, QueryTreeList *q2); void OffsetVarAttno(Node *node, int varno, int offset); -static void -appendTeeQuery(TeeInfo * teeInfo, +static void appendTeeQuery(TeeInfo * teeInfo, QueryTreeList *q, char *teeNodeName); -static Plan * -replaceTeeScans(Plan *plan, +static Plan *replaceTeeScans(Plan *plan, Query *parsetree, TeeInfo * teeInfo); -static void -replaceSeqScan(Plan *plan, +static void replaceSeqScan(Plan *plan, Plan *parent, int rt_ind, Plan *tplan); -static void -tg_rewriteQuery(TgRecipe * r, TgNode * n, +static void tg_rewriteQuery(TgRecipe * r, TgNode * n, QueryTreeList *q, QueryTreeList *inputQlist); -static Node * -tg_replaceNumberedParam(Node *expression, +static Node *tg_replaceNumberedParam(Node *expression, int pnum, int rt_ind, char *teeRelName); -static Node * -tg_rewriteParamsInExpr(Node *expression, +static Node *tg_rewriteParamsInExpr(Node *expression, QueryTreeList *inputQlist); -static QueryTreeList * -tg_parseSubQuery(TgRecipe * r, +static QueryTreeList *tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo); -static QueryTreeList * -tg_parseTeeNode(TgRecipe * r, +static QueryTreeList *tg_parseTeeNode(TgRecipe * r, TgNode * n, int i, QueryTreeList *qList, @@ -193,7 +185,7 @@ beginRecipe(RecipeStmt *stmt) #ifdef DEBUG_RECIPE elog(NOTICE, "beginRecipe: eyes[%d] = %s\n", i, e->nodeName); -#endif /* DEBUG_RECIPE */ +#endif /* DEBUG_RECIPE */ qList = tg_parseSubQuery(r, e->inNodes->val[0], teeInfo); @@ -851,7 +843,7 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) #ifdef DEBUG_RECIPE elog(NOTICE, "calling parser with %s", elem->src); -#endif /* DEBUG_RECIPE */ +#endif /* DEBUG_RECIPE */ parameterCount = getParamTypes(elem, typev); @@ -894,7 +886,7 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) #ifdef DEBUG_RECIPE elog(NOTICE, "calling parser with %s", newquery); -#endif /* DEBUG_RECIPE */ +#endif /* DEBUG_RECIPE */ qList = parser(newquery, typev, parameterCount); if (qList->len > 1) @@ -1032,8 +1024,8 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) tupdesc = rel->rd_att; relid = heap_create_with_catalog( - child->nodeElem->outTypes->val[0], - tupdesc, RELKIND_RELATION); + child->nodeElem->outTypes->val[0], + tupdesc, RELKIND_RELATION); } else { @@ -1056,8 +1048,8 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) else { relid = heap_create_with_catalog( - child->nodeElem->outTypes->val[0], - tupdesc, RELKIND_RELATION); + child->nodeElem->outTypes->val[0], + tupdesc, RELKIND_RELATION); } } } @@ -1338,4 +1330,4 @@ replaceTeeScans(Plan *plan, Query *parsetree, TeeInfo * teeInfo) -#endif /* TIOGA */ +#endif /* TIOGA */ diff --git a/src/backend/commands/remove.c b/src/backend/commands/remove.c index aa828ec4d8..cc68739f53 100644 --- a/src/backend/commands/remove.c +++ b/src/backend/commands/remove.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.28 1998/09/01 03:22:02 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.29 1998/09/01 04:27:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -57,7 +57,7 @@ RemoveOperator(char *operatorName, /* operator name */ bool defined; char *userName; char oprtype; - + if (typeName1) { typeId1 = TypeGet(typeName1, &defined); @@ -86,11 +86,11 @@ RemoveOperator(char *operatorName, /* operator name */ oprtype = 'r'; tup = SearchSysCacheTupleCopy(OPRNAME, - PointerGetDatum(operatorName), - ObjectIdGetDatum(typeId1), - ObjectIdGetDatum(typeId2), - CharGetDatum(oprtype)); - + PointerGetDatum(operatorName), + ObjectIdGetDatum(typeId1), + ObjectIdGetDatum(typeId2), + CharGetDatum(oprtype)); + relation = heap_openr(OperatorRelationName); if (HeapTupleIsValid(tup)) { @@ -150,7 +150,7 @@ SingleOpOperatorRemove(Oid typeOid) int i; ScanKeyEntryInitialize(&key[0], - 0, 0, F_OIDEQ, (Datum) typeOid); + 0, 0, F_OIDEQ, (Datum) typeOid); rel = heap_openr(OperatorRelationName); for (i = 0; i < 3; ++i) { @@ -192,7 +192,7 @@ AttributeAndRelationRemove(Oid typeOid) */ ScanKeyEntryInitialize(&key[0], - 0, 3, F_OIDEQ, (Datum) typeOid); + 0, 3, F_OIDEQ, (Datum) typeOid); oidptr = (struct oidlist *) palloc(sizeof(*oidptr)); oidptr->next = NULL; @@ -232,7 +232,7 @@ AttributeAndRelationRemove(Oid typeOid) heap_close(rel); } -#endif /* NOTYET */ +#endif /* NOTYET */ /* * TypeRemove @@ -257,15 +257,15 @@ RemoveType(char *typeName) /* type name to be removed */ relation = heap_openr(TypeRelationName); tup = SearchSysCacheTuple(TYPNAME, - PointerGetDatum(typeName), - 0, 0, 0); + PointerGetDatum(typeName), + 0, 0, 0); if (!HeapTupleIsValid(tup)) { heap_close(relation); elog(ERROR, "RemoveType: type '%s' does not exist", typeName); } - + relation = heap_openr(TypeRelationName); typeOid = tup->t_oid; heap_delete(relation, &tup->t_ctid); @@ -273,8 +273,8 @@ RemoveType(char *typeName) /* type name to be removed */ /* Now, Delete the "array of" that type */ shadow_type = makeArrayTypeName(typeName); tup = SearchSysCacheTuple(TYPNAME, - PointerGetDatum(shadow_type), - 0, 0, 0); + PointerGetDatum(shadow_type), + 0, 0, 0); if (!HeapTupleIsValid(tup)) { heap_close(relation); @@ -308,7 +308,7 @@ RemoveFunction(char *functionName, /* function name to be removed */ char *typename; int i; - + MemSet(argList, 0, 8 * sizeof(Oid)); for (i = 0; i < nargs; i++) { @@ -340,10 +340,10 @@ RemoveFunction(char *functionName, /* function name to be removed */ relation = heap_openr(ProcedureRelationName); tup = SearchSysCacheTuple(PRONAME, - PointerGetDatum(functionName), - Int32GetDatum(nargs), - PointerGetDatum(argList), - 0); + PointerGetDatum(functionName), + Int32GetDatum(nargs), + PointerGetDatum(argList), + 0); if (!HeapTupleIsValid(tup)) { @@ -353,8 +353,8 @@ RemoveFunction(char *functionName, /* function name to be removed */ if ((((Form_pg_proc) GETSTRUCT(tup))->prolang) == INTERNALlanguageId) { - heap_close(relation); - elog(ERROR, "RemoveFunction: function \"%s\" is built-in",functionName); + heap_close(relation); + elog(ERROR, "RemoveFunction: function \"%s\" is built-in", functionName); } heap_delete(relation, &tup->t_ctid); @@ -410,9 +410,9 @@ RemoveAggregate(char *aggName, char *aggType) relation = heap_openr(AggregateRelationName); tup = SearchSysCacheTuple(AGGNAME, - PointerGetDatum(aggName), - ObjectIdGetDatum(basetypeID), - 0, 0); + PointerGetDatum(aggName), + ObjectIdGetDatum(basetypeID), + 0, 0); if (!HeapTupleIsValid(tup)) { diff --git a/src/backend/commands/rename.c b/src/backend/commands/rename.c index 25243224af..31f193d053 100644 --- a/src/backend/commands/rename.c +++ b/src/backend/commands/rename.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.16 1998/09/01 03:22:04 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/rename.c,v 1.17 1998/09/01 04:27:59 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -36,7 +36,7 @@ #include <optimizer/prep.h> /* for find_all_inheritors */ #ifndef NO_SECURITY #include <utils/acl.h> -#endif /* !NO_SECURITY */ +#endif /* !NO_SECURITY */ #ifndef HAVE_MEMMOVE #include <regex/utils.h> #else @@ -73,7 +73,7 @@ renameatt(char *relname, newatttup; Relation irelations[Num_pg_attr_indices]; Oid relid; - + /* * permissions checking. this would normally be done in utility.c, * but this particular routine is recursive. @@ -111,12 +111,10 @@ renameatt(char *relname, 0, 0, 0); if (!HeapTupleIsValid(reltup)) - { elog(ERROR, "renameatt: unknown relation: \"%s\"", relname); - } myrelid = reltup->t_oid; - + /* this routine is actually in the planner */ children = find_all_inheritors(lconsi(myrelid, NIL), NIL); @@ -127,7 +125,7 @@ renameatt(char *relname, */ foreach(child, children) { - char childname[NAMEDATALEN]; + char childname[NAMEDATALEN]; childrelid = lfirsti(child); if (childrelid == myrelid) @@ -142,10 +140,10 @@ renameatt(char *relname, } /* make copy of cache value, could disappear in call */ StrNCpy(childname, - ((Form_pg_class) GETSTRUCT(reltup))->relname.data, - NAMEDATALEN); + ((Form_pg_class) GETSTRUCT(reltup))->relname.data, + NAMEDATALEN); /* no more recursion! */ - renameatt(childname, oldattname, newattname, userName, 0); + renameatt(childname, oldattname, newattname, userName, 0); } } @@ -158,9 +156,9 @@ renameatt(char *relname, relid = reltup->t_oid; oldatttup = SearchSysCacheTupleCopy(ATTNAME, - ObjectIdGetDatum(relid), - PointerGetDatum(oldattname), - 0, 0); + ObjectIdGetDatum(relid), + PointerGetDatum(oldattname), + 0, 0); if (!HeapTupleIsValid(oldatttup)) elog(ERROR, "renameatt: attribute \"%s\" nonexistent", oldattname); @@ -168,9 +166,9 @@ renameatt(char *relname, elog(ERROR, "renameatt: system attribute \"%s\" not renamed", oldattname); newatttup = SearchSysCacheTuple(ATTNAME, - ObjectIdGetDatum(relid), - PointerGetDatum(newattname), - 0, 0); + ObjectIdGetDatum(relid), + PointerGetDatum(newattname), + 0, 0); /* should not already exist */ if (HeapTupleIsValid(newatttup)) { @@ -179,7 +177,7 @@ renameatt(char *relname, } StrNCpy((((Form_pg_attribute) (GETSTRUCT(oldatttup)))->attname.data), - newattname, NAMEDATALEN); + newattname, NAMEDATALEN); attrelation = heap_openr(AttributeRelationName); heap_replace(attrelation, &oldatttup->t_ctid, oldatttup); @@ -212,13 +210,13 @@ renameatt(char *relname, void renamerel(char *oldrelname, char *newrelname) { - Relation relrelation; /* for RELATION relation */ + Relation relrelation; /* for RELATION relation */ HeapTuple oldreltup, newreltup; char oldpath[MAXPGPATH], newpath[MAXPGPATH]; Relation irelations[Num_pg_class_indices]; - + if (IsSystemRelationName(oldrelname)) elog(ERROR, "renamerel: system relation \"%s\" not renamed", oldrelname); @@ -228,14 +226,14 @@ renamerel(char *oldrelname, char *newrelname) newrelname); oldreltup = SearchSysCacheTupleCopy(RELNAME, - PointerGetDatum(oldrelname), - 0, 0, 0); + PointerGetDatum(oldrelname), + 0, 0, 0); if (!HeapTupleIsValid(oldreltup)) elog(ERROR, "renamerel: relation \"%s\" does not exist", oldrelname); newreltup = SearchSysCacheTuple(RELNAME, - PointerGetDatum(newrelname), - 0, 0, 0); + PointerGetDatum(newrelname), + 0, 0, 0); if (HeapTupleIsValid(newreltup)) elog(ERROR, "renamerel: relation \"%s\" exists", newrelname); @@ -246,7 +244,7 @@ renamerel(char *oldrelname, char *newrelname) elog(ERROR, "renamerel: unable to rename file: %s", oldpath); StrNCpy((((Form_pg_class) GETSTRUCT(oldreltup))->relname.data), - newrelname, NAMEDATALEN); + newrelname, NAMEDATALEN); /* insert fixed rel tuple */ relrelation = heap_openr(RelationRelationName); diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index e73981e813..7d9bd1d660 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -316,9 +316,9 @@ currval(struct varlena * seqin) int4 setval(struct varlena * seqin, int4 next) { - char *seqname = textout(seqin); + char *seqname = textout(seqin); SeqTable elm; - Buffer buf; + Buffer buf; Form_pg_sequence seq; ItemPointerData iptr; @@ -329,17 +329,20 @@ setval(struct varlena * seqin, int4 next) #endif /* open and WIntentLock sequence */ - elm = init_sequence ("setval", seqname); - seq = read_info ("setval", elm, &buf); /* lock page and read tuple */ + elm = init_sequence("setval", seqname); + seq = read_info("setval", elm, &buf); /* lock page and read + * tuple */ - if ( seq->cache_value != 1 ) { - elog (ERROR, "%s.setval: can't set value of sequence %s, cache != 1", - seqname, seqname); + if (seq->cache_value != 1) + { + elog(ERROR, "%s.setval: can't set value of sequence %s, cache != 1", + seqname, seqname); } - if ((next < seq->min_value) || (next > seq->max_value)) { - elog (ERROR, "%s.setval: value %d is of of bounds (%d,%d)", - seqname, next, seq->min_value, seq->max_value); + if ((next < seq->min_value) || (next > seq->max_value)) + { + elog(ERROR, "%s.setval: value %d is of of bounds (%d,%d)", + seqname, next, seq->min_value, seq->max_value); } /* save info in local cache */ @@ -350,11 +353,11 @@ setval(struct varlena * seqin, int4 next) seq->last_value = next; /* last fetched number */ seq->is_called = 't'; - if ( WriteBuffer (buf) == STATUS_ERROR ) - elog (ERROR, "%s.settval: WriteBuffer failed", seqname); + if (WriteBuffer(buf) == STATUS_ERROR) + elog(ERROR, "%s.settval: WriteBuffer failed", seqname); ItemPointerSet(&iptr, 0, FirstOffsetNumber); - RelationUnsetSingleWLockPage (elm->rel, &iptr); + RelationUnsetSingleWLockPage(elm->rel, &iptr); return next; } diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index f26860cfb7..9636466bff 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -40,8 +40,7 @@ void RelationBuildTriggers(Relation relation); void FreeTriggerDesc(Relation relation); static void DescribeTrigger(TriggerDesc *trigdesc, Trigger *trigger); -static HeapTuple -GetTupleForTrigger(Relation relation, ItemPointer tid, +static HeapTuple GetTupleForTrigger(Relation relation, ItemPointer tid, bool before); extern GlobalMemory CacheCxt; @@ -220,8 +219,8 @@ CreateTrigger(CreateTrigStmt *stmt) /* update pg_class */ tuple = SearchSysCacheTupleCopy(RELNAME, - PointerGetDatum(stmt->relname), - 0, 0, 0); + PointerGetDatum(stmt->relname), + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "CreateTrigger: relation %s not found in pg_class", stmt->relname); @@ -258,7 +257,7 @@ DropTrigger(DropTrigStmt *stmt) MemoryContext oldcxt; int found = 0; int tgfound = 0; - + #ifndef NO_SECURITY if (!pg_ownercheck(GetPgUserName(), stmt->relname, RELNAME)) elog(ERROR, "%s: %s", stmt->relname, aclcheck_error_strings[ACLCHECK_NOT_OWNER]); @@ -298,8 +297,8 @@ DropTrigger(DropTrigStmt *stmt) heap_close(tgrel); tuple = SearchSysCacheTupleCopy(RELNAME, - PointerGetDatum(stmt->relname), - 0, 0, 0); + PointerGetDatum(stmt->relname), + 0, 0, 0); if (!HeapTupleIsValid(tuple)) elog(ERROR, "DropTrigger: relation %s not found in pg_class", stmt->relname); diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c index a61bfd5f2e..e1aaa4cb22 100644 --- a/src/backend/commands/user.c +++ b/src/backend/commands/user.c @@ -263,7 +263,7 @@ AlterUser(AlterUserStmt *stmt) { RelationUnsetLockForWrite(pg_shadow_rel); heap_close(pg_shadow_rel); - UserAbortTransactionBlock(); /* needed? */ + UserAbortTransactionBlock(); /* needed? */ elog(ERROR, "alterUser: user \"%s\" does not exist", stmt->user); return; } @@ -430,8 +430,8 @@ RemoveUser(char *user) * tables, views, etc owned by the user. * * The second option would be to create a means of deleting tables, view, - * etc. owned by the user from other databases. pg_shadow is global and - * so this must be done at some point. + * etc. owned by the user from other databases. pg_shadow is global + * and so this must be done at some point. * * Let us not forget that the user should be removed from the pg_groups * also. @@ -466,8 +466,8 @@ CheckPgUserAclNotNull() HeapTuple htup; htup = SearchSysCacheTuple(RELNAME, - PointerGetDatum(ShadowRelationName), - 0, 0, 0); + PointerGetDatum(ShadowRelationName), + 0, 0, 0); if (!HeapTupleIsValid(htup)) { elog(ERROR, "IsPgUserAclNull: class \"%s\" not found", diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 1d522795b2..9898f58188 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.79 1998/09/01 03:22:08 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.80 1998/09/01 04:28:05 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -288,7 +288,7 @@ vc_getrels(NameData *VacRelP) else { ScanKeyEntryInitialize(&key, 0x0, Anum_pg_class_relkind, - F_CHAREQ, CharGetDatum('r')); + F_CHAREQ, CharGetDatum('r')); } portalmem = PortalGetVariableMemory(vc_portal); @@ -377,16 +377,16 @@ vc_vacone(Oid relid, bool analyze, List *va_cols) HeapTuple tuple, typetuple; Relation onerel; - VPageListData vacuum_pages; /* List of pages to vacuum and/or clean + VPageListData vacuum_pages; /* List of pages to vacuum and/or clean * indices */ - VPageListData fraged_pages; /* List of pages with space enough for + VPageListData fraged_pages; /* List of pages with space enough for * re-using */ VPageDescr *vpp; Relation *Irel; int32 nindices, i; VRelStats *vacrelstats; - + StartTransactionCommand(); rel = heap_openr(RelationRelationName); @@ -397,8 +397,8 @@ vc_vacone(Oid relid, bool analyze, List *va_cols) * last time we saw it, we don't need to vacuum it. */ tuple = SearchSysCacheTuple(RELOID, - ObjectIdGetDatum(relid), - 0, 0, 0); + ObjectIdGetDatum(relid), + 0, 0, 0); if (!HeapTupleIsValid(tuple)) { heap_close(rel); @@ -499,8 +499,8 @@ vc_vacone(Oid relid, bool analyze, List *va_cols) stats->f_cmpgt.fn_addr = NULL; typetuple = SearchSysCacheTuple(TYPOID, - ObjectIdGetDatum(stats->attr->atttypid), - 0, 0, 0); + ObjectIdGetDatum(stats->attr->atttypid), + 0, 0, 0); if (HeapTupleIsValid(typetuple)) stats->outfunc = ((Form_pg_type) GETSTRUCT(typetuple))->typoutput; else @@ -549,13 +549,14 @@ vc_vacone(Oid relid, bool analyze, List *va_cols) } } - if (fraged_pages.vpl_num_pages > 0) /* Try to shrink heap */ + if (fraged_pages.vpl_num_pages > 0) /* Try to shrink heap */ vc_rpfheap(vacrelstats, onerel, &vacuum_pages, &fraged_pages, nindices, Irel); else { if (Irel != (Relation *) NULL) vc_clsindices(nindices, Irel); - if (vacuum_pages.vpl_num_pages > 0)/* Clean pages from vacuum_pages list */ + if (vacuum_pages.vpl_num_pages > 0) /* Clean pages from + * vacuum_pages list */ vc_vacheap(vacrelstats, onerel, &vacuum_pages); } @@ -644,7 +645,7 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel, vpc->vpd_offsets_used = 0; elog(MESSAGE_LEVEL, "--Relation %s--", relname); - + for (blkno = 0; blkno < nblocks; blkno++) { buf = ReadBuffer(onerel, blkno); @@ -875,8 +876,8 @@ vc_scanheap(VRelStats *vacrelstats, Relation onerel, fraged_pages->vpl_empty_end_pages = empty_end_pages; /* - * Try to make fraged_pages keeping in mind that we can't use free space of - * "empty" end-pages and last page if it reapped. + * Try to make fraged_pages keeping in mind that we can't use free + * space of "empty" end-pages and last page if it reapped. */ if (do_shrinking && vacuum_pages->vpl_num_pages - empty_end_pages > 0) { @@ -1010,9 +1011,9 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel, isempty = PageIsEmpty(page); dowrite = false; - if (blkno == last_vacuum_block) /* it's reapped page */ + if (blkno == last_vacuum_block) /* it's reapped page */ { - if (last_vacuum_page->vpd_offsets_free > 0) /* there are dead tuples */ + if (last_vacuum_page->vpd_offsets_free > 0) /* there are dead tuples */ { /* on this page - clean */ Assert(!isempty); vc_vacpage(page, last_vacuum_page); @@ -1025,7 +1026,8 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel, /* get prev reapped page from vacuum_pages */ last_vacuum_page = vacuum_pages->vpl_pagedesc[vacuumed_pages - 1]; last_vacuum_block = last_vacuum_page->vpd_blkno; - if (blkno == last_fraged_block) /* this page in fraged_pages too */ + if (blkno == last_fraged_block) /* this page in + * fraged_pages too */ { --num_fraged_pages; Assert(num_fraged_pages > 0); @@ -1080,7 +1082,7 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel, Assert(num_fraged_pages > cur_item + 1); memmove(fraged_pages->vpl_pagedesc + cur_item, fraged_pages->vpl_pagedesc + cur_item + 1, - sizeof(VPageDescr *) * (num_fraged_pages - cur_item - 1)); + sizeof(VPageDescr *) * (num_fraged_pages - cur_item - 1)); num_fraged_pages--; Assert(last_fraged_page == fraged_pages->vpl_pagedesc[num_fraged_pages - 1]); } @@ -1121,7 +1123,7 @@ vc_rpfheap(VRelStats *vacrelstats, Relation onerel, elog(ERROR, "\ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)", tuple_len, cur_page->vpd_blkno, cur_page->vpd_free, - cur_page->vpd_offsets_used, cur_page->vpd_offsets_free); + cur_page->vpd_offsets_used, cur_page->vpd_offsets_free); } newitemid = PageGetItemId(ToPage, newoff); pfree(newtup); @@ -1145,7 +1147,7 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)", for (i = 0, idcur = Idesc; i < nindices; i++, idcur++) { FormIndexDatum(idcur->natts, - (AttrNumber *) &(idcur->tform->indkey[0]), + (AttrNumber *) &(idcur->tform->indkey[0]), newtup, tupdesc, idatum, @@ -1201,8 +1203,8 @@ failed to add item with len = %u to page %u (free space %u, nusd %u, noff %u)", } /* - * Clean uncleaned reapped pages from vacuum_pages list and set xmin committed - * for inserted tuples + * Clean uncleaned reapped pages from vacuum_pages list and set xmin + * committed for inserted tuples */ checked_moved = 0; for (i = 0, vpp = vacuum_pages->vpl_pagedesc; i < vacuumed_pages; i++, vpp++) @@ -1320,7 +1322,7 @@ Elapsed %u/%u sec.", elog(FATAL, "VACUUM (vc_rpfheap): BlowawayRelationBuffers returned %d", i); blkno = smgrtruncate(DEFAULT_SMGR, onerel, blkno); Assert(blkno >= 0); - vacrelstats->num_pages = blkno; /* set new number of blocks */ + vacrelstats->num_pages = blkno; /* set new number of blocks */ } if (Irel != (Relation *) NULL) /* pfree index' allocations */ @@ -1351,7 +1353,8 @@ vc_vacheap(VRelStats *vacrelstats, Relation onerel, VPageList vacuum_pages) int i; nblocks = vacuum_pages->vpl_num_pages; - nblocks -= vacuum_pages->vpl_empty_end_pages;/* nothing to do with them */ + nblocks -= vacuum_pages->vpl_empty_end_pages; /* nothing to do with + * them */ for (i = 0, vpp = vacuum_pages->vpl_pagedesc; i < nblocks; i++, vpp++) { @@ -1385,7 +1388,8 @@ vc_vacheap(VRelStats *vacrelstats, Relation onerel, VPageList vacuum_pages) nblocks = smgrtruncate(DEFAULT_SMGR, onerel, nblocks); Assert(nblocks >= 0); - vacrelstats->num_pages = nblocks; /* set new number of blocks */ + vacrelstats->num_pages = nblocks; /* set new number of + * blocks */ } } /* vc_vacheap */ @@ -1555,7 +1559,7 @@ vc_tidreapped(ItemPointer itemptr, VPageList vpl) vp = &vpd; vpp = (VPageDescr *) vc_find_eq((char *) (vpl->vpl_pagedesc), - vpl->vpl_num_pages, sizeof(VPageDescr), (char *) &vp, + vpl->vpl_num_pages, sizeof(VPageDescr), (char *) &vp, vc_cmp_blk); if (vpp == (VPageDescr *) NULL) @@ -1570,7 +1574,7 @@ vc_tidreapped(ItemPointer itemptr, VPageList vpl) } voff = (OffsetNumber *) vc_find_eq((char *) (vp->vpd_offsets), - vp->vpd_offsets_free, sizeof(OffsetNumber), (char *) &ioffno, + vp->vpd_offsets_free, sizeof(OffsetNumber), (char *) &ioffno, vc_cmp_offno); if (voff == (OffsetNumber *) NULL) @@ -1746,16 +1750,16 @@ vc_updstats(Oid relid, int num_pages, int num_tuples, bool hasindex, VRelStats * ScanKeyData askey; Form_pg_attribute attp; Buffer buffer; - + /* * update number of tuples and number of pages in pg_class */ rtup = SearchSysCacheTuple(RELOID, - ObjectIdGetDatum(relid), - 0, 0, 0); + ObjectIdGetDatum(relid), + 0, 0, 0); if (!HeapTupleIsValid(rtup)) elog(ERROR, "pg_class entry for relid %d vanished during vacuuming", - relid); + relid); rd = heap_openr(RelationRelationName); @@ -2207,16 +2211,20 @@ vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc) AttrNumber *attnumP; int natts; int i; - + *Idesc = (IndDesc *) palloc(nindices * sizeof(IndDesc)); for (i = 0, idcur = *Idesc; i < nindices; i++, idcur++) { cachetuple = SearchSysCacheTupleCopy(INDEXRELID, - ObjectIdGetDatum(RelationGetRelid(Irel[i])), - 0, 0, 0); + ObjectIdGetDatum(RelationGetRelid(Irel[i])), + 0, 0, 0); Assert(cachetuple); - /* we never free the copy we make, because Idesc needs it for later */ + + /* + * we never free the copy we make, because Idesc needs it for + * later + */ idcur->tform = (Form_pg_index) GETSTRUCT(cachetuple); for (attnumP = &(idcur->tform->indkey[0]), natts = 0; *attnumP != InvalidAttrNumber && natts != INDEX_MAX_KEYS; @@ -2247,7 +2255,8 @@ vc_enough_space(VPageDescr vpd, Size len) if (len > vpd->vpd_free) return false; - if (vpd->vpd_offsets_used < vpd->vpd_offsets_free) /* there are free itemid(s) */ + if (vpd->vpd_offsets_used < vpd->vpd_offsets_free) /* there are free + * itemid(s) */ return true; /* and len <= free_space */ /* ok. noff_usd >= noff_free and so we'll have to allocate new itemid */ diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c index e01967f43b..2c813dcd59 100644 --- a/src/backend/commands/variable.c +++ b/src/backend/commands/variable.c @@ -2,7 +2,7 @@ * Routines for handling of 'SET var TO', * 'SHOW var' and 'RESET var' statements. * - * $Id: variable.c,v 1.11 1998/09/01 03:22:10 momjian Exp $ + * $Id: variable.c,v 1.12 1998/09/01 04:28:07 momjian Exp $ * */ @@ -554,7 +554,7 @@ struct VariableParsers { "client_encoding", parse_client_encoding, show_client_encoding, reset_client_encoding }, - { + { "server_encoding", parse_server_encoding, show_server_encoding, reset_server_encoding }, #endif diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index 0da160d5e8..cf81e8be66 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.24 1998/08/06 05:12:30 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.25 1998/09/01 04:28:10 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -223,7 +223,7 @@ UpdateRangeTableOfViewParse(char *viewName, Query *viewParse) OffsetVarNodes(viewParse->qual, 2); OffsetVarNodes(viewParse->havingQual, 2); - + /* * find the old range table... diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c index 210d2d5072..e8c9bec312 100644 --- a/src/backend/executor/execAmi.c +++ b/src/backend/executor/execAmi.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.24 1998/07/27 19:37:54 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.25 1998/09/01 04:28:13 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -54,8 +54,7 @@ #include "access/heapam.h" #include "catalog/heap.h" -static Pointer -ExecBeginScan(Relation relation, int nkeys, ScanKey skeys, +static Pointer ExecBeginScan(Relation relation, int nkeys, ScanKey skeys, bool isindex, ScanDirection dir, Snapshot snapshot); static Relation ExecOpenR(Oid relationOid, bool isindex); diff --git a/src/backend/executor/execFlatten.c b/src/backend/executor/execFlatten.c index 24b524fbf5..729232d9d4 100644 --- a/src/backend/executor/execFlatten.c +++ b/src/backend/executor/execFlatten.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/Attic/execFlatten.c,v 1.6 1998/09/01 03:22:11 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/Attic/execFlatten.c,v 1.7 1998/09/01 04:28:14 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -33,8 +33,7 @@ #include "executor/execFlatten.h" #ifdef SETS_FIXED -static bool -FjoinBumpOuterNodes(TargetEntry *tlist, ExprContext *econtext, +static bool FjoinBumpOuterNodes(TargetEntry *tlist, ExprContext *econtext, DatumPtr results, char *nulls); #endif diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 3d782f34b0..f470abb6b6 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.54 1998/09/01 03:22:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.55 1998/09/01 04:28:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -54,31 +54,25 @@ #include "catalog/heap.h" #include "commands/trigger.h" -void -ExecCheckPerms(CmdType operation, int resultRelation, List *rangeTable, +void ExecCheckPerms(CmdType operation, int resultRelation, List *rangeTable, Query *parseTree); /* decls for local routines only used within this module */ -static TupleDesc -InitPlan(CmdType operation, Query *parseTree, +static TupleDesc InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate); static void EndPlan(Plan *plan, EState *estate); -static TupleTableSlot * -ExecutePlan(EState *estate, Plan *plan, +static TupleTableSlot *ExecutePlan(EState *estate, Plan *plan, Query *parseTree, CmdType operation, int numberTuples, ScanDirection direction, void (*printfunc) ()); static void ExecRetrieve(TupleTableSlot *slot, void (*printfunc) (), EState *estate); -static void -ExecAppend(TupleTableSlot *slot, ItemPointer tupleid, +static void ExecAppend(TupleTableSlot *slot, ItemPointer tupleid, EState *estate); -static void -ExecDelete(TupleTableSlot *slot, ItemPointer tupleid, +static void ExecDelete(TupleTableSlot *slot, ItemPointer tupleid, EState *estate); -static void -ExecReplace(TupleTableSlot *slot, ItemPointer tupleid, +static void ExecReplace(TupleTableSlot *slot, ItemPointer tupleid, EState *estate, Query *parseTree); /* end of local decls */ @@ -124,7 +118,7 @@ ExecutorStart(QueryDesc *queryDesc, EState *estate) palloc(queryDesc->plantree->nParamExec * sizeof(ParamExecData)); memset(estate->es_param_exec_vals, 0, queryDesc->plantree->nParamExec * sizeof(ParamExecData)); } - + estate->es_snapshot = SnapshotNow; result = InitPlan(queryDesc->operation, @@ -315,8 +309,8 @@ ExecCheckPerms(CmdType operation, relid = rte->relid; htup = SearchSysCacheTuple(RELOID, - ObjectIdGetDatum(relid), - 0, 0, 0); + ObjectIdGetDatum(relid), + 0, 0, 0); if (!HeapTupleIsValid(htup)) elog(ERROR, "ExecCheckPerms: bogus RT relid: %d", relid); @@ -521,19 +515,19 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) * NOTE: in the future we might want to initialize the junk * filter for all queries. * ---------------- - * SELECT added by daveh@insightdist.com 5/20/98 to allow - * ORDER/GROUP BY have an identifier missing from the target. + * SELECT added by daveh@insightdist.com 5/20/98 to allow + * ORDER/GROUP BY have an identifier missing from the target. */ { - bool junk_filter_needed = false; - List *tlist; - + bool junk_filter_needed = false; + List *tlist; + if (operation == CMD_SELECT) { foreach(tlist, targetList) { - TargetEntry *tle = lfirst(tlist); - + TargetEntry *tle = lfirst(tlist); + if (tle->resdom->resjunk) { junk_filter_needed = true; @@ -547,6 +541,7 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) (operation == CMD_SELECT && junk_filter_needed)) { JunkFilter *j = (JunkFilter *) ExecInitJunkFilter(targetList); + estate->es_junkFilter = j; if (operation == CMD_SELECT) @@ -555,7 +550,7 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) else estate->es_junkFilter = NULL; } - + /* ---------------- * initialize the "into" relation * ---------------- @@ -588,7 +583,7 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) tupdesc = CreateTupleDescCopy(tupType); intoRelationId = heap_create_with_catalog(intoName, - tupdesc, RELKIND_RELATION); + tupdesc, RELKIND_RELATION); FreeTupleDesc(tupdesc); diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index 72de0b8faf..f3d12b1319 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.35 1998/09/01 03:22:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.36 1998/09/01 04:28:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -68,24 +68,19 @@ int execConstLen; /* static functions decls */ static Datum ExecEvalAggreg(Aggreg *agg, ExprContext *econtext, bool *isNull); -static Datum -ExecEvalArrayRef(ArrayRef *arrayRef, ExprContext *econtext, +static Datum ExecEvalArrayRef(ArrayRef *arrayRef, ExprContext *econtext, bool *isNull, bool *isDone); static Datum ExecEvalAnd(Expr *andExpr, ExprContext *econtext, bool *isNull); -static Datum -ExecEvalFunc(Expr *funcClause, ExprContext *econtext, +static Datum ExecEvalFunc(Expr *funcClause, ExprContext *econtext, bool *isNull, bool *isDone); -static void -ExecEvalFuncArgs(FunctionCachePtr fcache, ExprContext *econtext, +static void ExecEvalFuncArgs(FunctionCachePtr fcache, ExprContext *econtext, List *argList, Datum argV[], bool *argIsDone); static Datum ExecEvalNot(Expr *notclause, ExprContext *econtext, bool *isNull); -static Datum -ExecEvalOper(Expr *opClause, ExprContext *econtext, +static Datum ExecEvalOper(Expr *opClause, ExprContext *econtext, bool *isNull); static Datum ExecEvalOr(Expr *orExpr, ExprContext *econtext, bool *isNull); static Datum ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull); -static Datum -ExecMakeFunctionResult(Node *node, List *arguments, +static Datum ExecMakeFunctionResult(Node *node, List *arguments, ExprContext *econtext, bool *isNull, bool *isDone); static bool ExecQualClause(Node *clause, ExprContext *econtext); @@ -200,7 +195,7 @@ ExecEvalArrayRef(ArrayRef *arrayRef, static Datum ExecEvalAggreg(Aggreg *agg, ExprContext *econtext, bool *isNull) { - *isNull = econtext->ecxt_nulls[agg->aggno]; + *isNull = econtext->ecxt_nulls[agg->aggno]; return econtext->ecxt_values[agg->aggno]; } diff --git a/src/backend/executor/execScan.c b/src/backend/executor/execScan.c index e04876c331..30b1166e80 100644 --- a/src/backend/executor/execScan.c +++ b/src/backend/executor/execScan.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execScan.c,v 1.7 1998/02/26 12:13:09 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execScan.c,v 1.8 1998/09/01 04:28:20 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -106,9 +106,9 @@ ExecScan(Scan *node, * NULL, then it means there is nothing more to scan * so we just return the empty slot... * - * ... with invalid TupleDesc (not the same as in - * projInfo->pi_slot) and break upper MergeJoin node. - * New code below do what ExecProject() does. - vadim 02/26/98 + * ... with invalid TupleDesc (not the same as in + * projInfo->pi_slot) and break upper MergeJoin node. + * New code below do what ExecProject() does. - vadim 02/26/98 * ---------------- */ if (TupIsNull(slot)) @@ -116,10 +116,10 @@ ExecScan(Scan *node, scanstate->cstate.cs_TupFromTlist = false; resultSlot = scanstate->cstate.cs_ProjInfo->pi_slot; return (TupleTableSlot *) - ExecStoreTuple (NULL, - resultSlot, - InvalidBuffer, - true); + ExecStoreTuple(NULL, + resultSlot, + InvalidBuffer, + true); } /* ---------------- diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 7cc53dce48..fb83fd6e55 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.37 1998/09/01 03:22:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.38 1998/09/01 04:28:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -57,8 +57,7 @@ #include "utils/lsyscache.h" #include "utils/mcxt.h" -static void -ExecGetIndexKeyInfo(Form_pg_index indexTuple, int *numAttsOutP, +static void ExecGetIndexKeyInfo(Form_pg_index indexTuple, int *numAttsOutP, AttrNumber **attsOutP, FuncIndexInfoPtr fInfoP); /* ---------------------------------------------------------------- @@ -750,7 +749,7 @@ ExecOpenIndices(Oid resultRelationOid, */ indexSd = heap_beginscan(indexRd, /* scan desc */ false, /* scan backward flag */ - SnapshotNow, /* NOW snapshot */ + SnapshotNow, /* NOW snapshot */ 1, /* number scan keys */ &key); /* scan keys */ diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index 4d23d27178..fd095e7864 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.19 1998/09/01 03:22:22 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/functions.c,v 1.20 1998/09/01 04:28:23 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -57,16 +57,13 @@ typedef struct local_es /* non-export function prototypes */ static TupleDesc postquel_start(execution_state *es); -static execution_state * -init_execution_state(FunctionCachePtr fcache, +static execution_state *init_execution_state(FunctionCachePtr fcache, char *args[]); static TupleTableSlot *postquel_getnext(execution_state *es); static void postquel_end(execution_state *es); -static void -postquel_sub_params(execution_state *es, int nargs, +static void postquel_sub_params(execution_state *es, int nargs, char *args[], bool *nullV); -static Datum -postquel_execute(execution_state *es, FunctionCachePtr fcache, +static Datum postquel_execute(execution_state *es, FunctionCachePtr fcache, List *fTlist, char **args, bool *isNull); diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 28f50bdd4f..c7e69d1a72 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -109,388 +109,397 @@ ExecAgg(Agg *node) bool isNull = FALSE, isNull1 = FALSE, isNull2 = FALSE; - bool qual_result; - + bool qual_result; + /* --------------------- * get state info from node * --------------------- */ - /* We loop retrieving groups until we find one matching node->plan.qual */ - do { + /* + * We loop retrieving groups until we find one matching + * node->plan.qual + */ + do + { - aggstate = node->aggstate; - if (aggstate->agg_done) - return NULL; + aggstate = node->aggstate; + if (aggstate->agg_done) + return NULL; - estate = node->plan.state; - econtext = aggstate->csstate.cstate.cs_ExprContext; + estate = node->plan.state; + econtext = aggstate->csstate.cstate.cs_ExprContext; - nagg = length(node->aggs); + nagg = length(node->aggs); - aggregates = (Aggreg **) palloc(sizeof(Aggreg *) * nagg); + aggregates = (Aggreg **) palloc(sizeof(Aggreg *) * nagg); - /* take List* and make it an array that can be quickly indexed */ - alist = node->aggs; - for (i = 0; i < nagg; i++) - { - aggregates[i] = lfirst(alist); - aggregates[i]->aggno = i; - alist = lnext(alist); - } - - value1 = node->aggstate->csstate.cstate.cs_ExprContext->ecxt_values; - nulls = node->aggstate->csstate.cstate.cs_ExprContext->ecxt_nulls; + /* take List* and make it an array that can be quickly indexed */ + alist = node->aggs; + for (i = 0; i < nagg; i++) + { + aggregates[i] = lfirst(alist); + aggregates[i]->aggno = i; + alist = lnext(alist); + } - value2 = (Datum *) palloc(sizeof(Datum) * nagg); - MemSet(value2, 0, sizeof(Datum) * nagg); + value1 = node->aggstate->csstate.cstate.cs_ExprContext->ecxt_values; + nulls = node->aggstate->csstate.cstate.cs_ExprContext->ecxt_nulls; - aggFuncInfo = (AggFuncInfo *) palloc(sizeof(AggFuncInfo) * nagg); - MemSet(aggFuncInfo, 0, sizeof(AggFuncInfo) * nagg); + value2 = (Datum *) palloc(sizeof(Datum) * nagg); + MemSet(value2, 0, sizeof(Datum) * nagg); - noInitValue = (int *) palloc(sizeof(int) * nagg); - MemSet(noInitValue, 0, sizeof(noInitValue) * nagg); + aggFuncInfo = (AggFuncInfo *) palloc(sizeof(AggFuncInfo) * nagg); + MemSet(aggFuncInfo, 0, sizeof(AggFuncInfo) * nagg); - outerPlan = outerPlan(node); - oneTuple = NULL; + noInitValue = (int *) palloc(sizeof(int) * nagg); + MemSet(noInitValue, 0, sizeof(noInitValue) * nagg); - projInfo = aggstate->csstate.cstate.cs_ProjInfo; + outerPlan = outerPlan(node); + oneTuple = NULL; - for (i = 0; i < nagg; i++) - { - Aggreg *agg; - char *aggname; - HeapTuple aggTuple; - Form_pg_aggregate aggp; - Oid xfn1_oid, - xfn2_oid, - finalfn_oid; - - agg = aggregates[i]; - - /* --------------------- - * find transfer functions of all the aggregates and initialize - * their initial values - * --------------------- - */ - aggname = agg->aggname; - aggTuple = SearchSysCacheTuple(AGGNAME, - PointerGetDatum(aggname), - ObjectIdGetDatum(agg->basetype), - 0, 0); - if (!HeapTupleIsValid(aggTuple)) - elog(ERROR, "ExecAgg: cache lookup failed for aggregate \"%s\"(%s)", - aggname, - typeidTypeName(agg->basetype)); - aggp = (Form_pg_aggregate) GETSTRUCT(aggTuple); - - xfn1_oid = aggp->aggtransfn1; - xfn2_oid = aggp->aggtransfn2; - finalfn_oid = aggp->aggfinalfn; - - if (OidIsValid(finalfn_oid)) - { - fmgr_info(finalfn_oid, &aggFuncInfo[i].finalfn); - aggFuncInfo[i].finalfn_oid = finalfn_oid; - } + projInfo = aggstate->csstate.cstate.cs_ProjInfo; - if (OidIsValid(xfn2_oid)) + for (i = 0; i < nagg; i++) { - fmgr_info(xfn2_oid, &aggFuncInfo[i].xfn2); - aggFuncInfo[i].xfn2_oid = xfn2_oid; - value2[i] = (Datum) AggNameGetInitVal((char *) aggname, - aggp->aggbasetype, - 2, - &isNull2); - /* ------------------------------------------ - * If there is a second transition function, its initial - * value must exist -- as it does not depend on data values, - * we have no other way of determining an initial value. - * ------------------------------------------ + Aggreg *agg; + char *aggname; + HeapTuple aggTuple; + Form_pg_aggregate aggp; + Oid xfn1_oid, + xfn2_oid, + finalfn_oid; + + agg = aggregates[i]; + + /* --------------------- + * find transfer functions of all the aggregates and initialize + * their initial values + * --------------------- */ - if (isNull2) - elog(ERROR, "ExecAgg: agginitval2 is null"); - } + aggname = agg->aggname; + aggTuple = SearchSysCacheTuple(AGGNAME, + PointerGetDatum(aggname), + ObjectIdGetDatum(agg->basetype), + 0, 0); + if (!HeapTupleIsValid(aggTuple)) + elog(ERROR, "ExecAgg: cache lookup failed for aggregate \"%s\"(%s)", + aggname, + typeidTypeName(agg->basetype)); + aggp = (Form_pg_aggregate) GETSTRUCT(aggTuple); + + xfn1_oid = aggp->aggtransfn1; + xfn2_oid = aggp->aggtransfn2; + finalfn_oid = aggp->aggfinalfn; + + if (OidIsValid(finalfn_oid)) + { + fmgr_info(finalfn_oid, &aggFuncInfo[i].finalfn); + aggFuncInfo[i].finalfn_oid = finalfn_oid; + } - if (OidIsValid(xfn1_oid)) - { - fmgr_info(xfn1_oid, &aggFuncInfo[i].xfn1); - aggFuncInfo[i].xfn1_oid = xfn1_oid; - value1[i] = (Datum) AggNameGetInitVal((char *) aggname, - aggp->aggbasetype, - 1, - &isNull1); - - /* ------------------------------------------ - * If the initial value for the first transition function - * doesn't exist in the pg_aggregate table then we let - * the first value returned from the outer procNode become - * the initial value. (This is useful for aggregates like - * max{} and min{}.) - * ------------------------------------------ - */ - if (isNull1) + if (OidIsValid(xfn2_oid)) { - noInitValue[i] = 1; - nulls[i] = 1; + fmgr_info(xfn2_oid, &aggFuncInfo[i].xfn2); + aggFuncInfo[i].xfn2_oid = xfn2_oid; + value2[i] = (Datum) AggNameGetInitVal((char *) aggname, + aggp->aggbasetype, + 2, + &isNull2); + /* ------------------------------------------ + * If there is a second transition function, its initial + * value must exist -- as it does not depend on data values, + * we have no other way of determining an initial value. + * ------------------------------------------ + */ + if (isNull2) + elog(ERROR, "ExecAgg: agginitval2 is null"); } - } - } - - /* ---------------- - * for each tuple from the the outer plan, apply all the aggregates - * ---------------- - */ - for (;;) - { - HeapTuple outerTuple = NULL; - TupleTableSlot *outerslot; - - isNull = isNull1 = isNull2 = 0; - outerslot = ExecProcNode(outerPlan, (Plan *) node); - if (outerslot) - outerTuple = outerslot->val; - if (!HeapTupleIsValid(outerTuple)) - { - /* - * when the outerplan doesn't return a single tuple, create a - * dummy heaptuple anyway because we still need to return a - * valid aggregate value. The value returned will be the - * initial values of the transition functions - */ - if (nTuplesAgged == 0) + if (OidIsValid(xfn1_oid)) { - TupleDesc tupType; - Datum *tupValue; - char *null_array; - - tupType = aggstate->csstate.css_ScanTupleSlot->ttc_tupleDescriptor; - tupValue = projInfo->pi_tupValue; - - /* initially, set all the values to NULL */ - null_array = palloc(tupType->natts); - for (i = 0; i < tupType->natts; i++) - null_array[i] = 'n'; - oneTuple = heap_formtuple(tupType, tupValue, null_array); - pfree(null_array); + fmgr_info(xfn1_oid, &aggFuncInfo[i].xfn1); + aggFuncInfo[i].xfn1_oid = xfn1_oid; + value1[i] = (Datum) AggNameGetInitVal((char *) aggname, + aggp->aggbasetype, + 1, + &isNull1); + + /* ------------------------------------------ + * If the initial value for the first transition function + * doesn't exist in the pg_aggregate table then we let + * the first value returned from the outer procNode become + * the initial value. (This is useful for aggregates like + * max{} and min{}.) + * ------------------------------------------ + */ + if (isNull1) + { + noInitValue[i] = 1; + nulls[i] = 1; + } } - break; } - for (i = 0; i < nagg; i++) + /* ---------------- + * for each tuple from the the outer plan, apply all the aggregates + * ---------------- + */ + for (;;) { - AttrNumber attnum; - int2 attlen = 0; - Datum newVal = (Datum) NULL; - AggFuncInfo *aggfns = &aggFuncInfo[i]; - Datum args[2]; - Node *tagnode = NULL; - - switch (nodeTag(aggregates[i]->target)) + HeapTuple outerTuple = NULL; + TupleTableSlot *outerslot; + + isNull = isNull1 = isNull2 = 0; + outerslot = ExecProcNode(outerPlan, (Plan *) node); + if (outerslot) + outerTuple = outerslot->val; + if (!HeapTupleIsValid(outerTuple)) { - case T_Var: - tagnode = NULL; - newVal = aggGetAttr(outerslot, - aggregates[i], - &isNull); - break; - case T_Expr: - tagnode = ((Expr *) aggregates[i]->target)->oper; - econtext->ecxt_scantuple = outerslot; - newVal = ExecEvalExpr(aggregates[i]->target, econtext, - &isNull, &isDone); - break; - case T_Const: - tagnode = NULL; - econtext->ecxt_scantuple = outerslot; - newVal = ExecEvalExpr(aggregates[i]->target, econtext, - &isNull, &isDone); - break; - default: - elog(ERROR, "ExecAgg: Bad Agg->Target for Agg %d", i); - } - if (isNull && !aggregates[i]->usenulls) - continue; /* ignore this tuple for this agg */ + /* + * when the outerplan doesn't return a single tuple, + * create a dummy heaptuple anyway because we still need + * to return a valid aggregate value. The value returned + * will be the initial values of the transition functions + */ + if (nTuplesAgged == 0) + { + TupleDesc tupType; + Datum *tupValue; + char *null_array; + + tupType = aggstate->csstate.css_ScanTupleSlot->ttc_tupleDescriptor; + tupValue = projInfo->pi_tupValue; + + /* initially, set all the values to NULL */ + null_array = palloc(tupType->natts); + for (i = 0; i < tupType->natts; i++) + null_array[i] = 'n'; + oneTuple = heap_formtuple(tupType, tupValue, null_array); + pfree(null_array); + } + break; + } - if (aggfns->xfn1.fn_addr != NULL) + for (i = 0; i < nagg; i++) { - if (noInitValue[i]) + AttrNumber attnum; + int2 attlen = 0; + Datum newVal = (Datum) NULL; + AggFuncInfo *aggfns = &aggFuncInfo[i]; + Datum args[2]; + Node *tagnode = NULL; + + switch (nodeTag(aggregates[i]->target)) + { + case T_Var: + tagnode = NULL; + newVal = aggGetAttr(outerslot, + aggregates[i], + &isNull); + break; + case T_Expr: + tagnode = ((Expr *) aggregates[i]->target)->oper; + econtext->ecxt_scantuple = outerslot; + newVal = ExecEvalExpr(aggregates[i]->target, econtext, + &isNull, &isDone); + break; + case T_Const: + tagnode = NULL; + econtext->ecxt_scantuple = outerslot; + newVal = ExecEvalExpr(aggregates[i]->target, econtext, + &isNull, &isDone); + break; + default: + elog(ERROR, "ExecAgg: Bad Agg->Target for Agg %d", i); + } + + if (isNull && !aggregates[i]->usenulls) + continue; /* ignore this tuple for this agg */ + + if (aggfns->xfn1.fn_addr != NULL) { - int byVal = 0; - - /* - * value1 and value2 has not been initialized. This is - * the first non-NULL value. We use it as the initial - * value. - */ - - /* - * but we can't just use it straight, we have to make - * a copy of it since the tuple from which it came - * will be freed on the next iteration of the scan - */ - switch (nodeTag(aggregates[i]->target)) + if (noInitValue[i]) { - case T_Var: - attnum = ((Var *) aggregates[i]->target)->varattno; - attlen = outerslot->ttc_tupleDescriptor->attrs[attnum - 1]->attlen; - byVal = outerslot->ttc_tupleDescriptor->attrs[attnum - 1]->attbyval; - - break; - case T_Expr: - { - FunctionCachePtr fcache_ptr; - - if (nodeTag(tagnode) == T_Func) - fcache_ptr = ((Func *) tagnode)->func_fcache; - else - fcache_ptr = ((Oper *) tagnode)->op_fcache; - attlen = fcache_ptr->typlen; - byVal = fcache_ptr->typbyval; + int byVal = 0; + + /* + * value1 and value2 has not been initialized. + * This is the first non-NULL value. We use it as + * the initial value. + */ + + /* + * but we can't just use it straight, we have to + * make a copy of it since the tuple from which it + * came will be freed on the next iteration of the + * scan + */ + switch (nodeTag(aggregates[i]->target)) + { + case T_Var: + attnum = ((Var *) aggregates[i]->target)->varattno; + attlen = outerslot->ttc_tupleDescriptor->attrs[attnum - 1]->attlen; + byVal = outerslot->ttc_tupleDescriptor->attrs[attnum - 1]->attbyval; + + break; + case T_Expr: + { + FunctionCachePtr fcache_ptr; + + if (nodeTag(tagnode) == T_Func) + fcache_ptr = ((Func *) tagnode)->func_fcache; + else + fcache_ptr = ((Oper *) tagnode)->op_fcache; + attlen = fcache_ptr->typlen; + byVal = fcache_ptr->typbyval; + + break; + } + case T_Const: + attlen = ((Const *) aggregates[i]->target)->constlen; + byVal = ((Const *) aggregates[i]->target)->constbyval; break; - } - case T_Const: - attlen = ((Const *) aggregates[i]->target)->constlen; - byVal = ((Const *) aggregates[i]->target)->constbyval; - - break; - default: - elog(ERROR, "ExecAgg: Bad Agg->Target for Agg %d", i); + default: + elog(ERROR, "ExecAgg: Bad Agg->Target for Agg %d", i); + } + if (attlen == -1) + { + /* variable length */ + attlen = VARSIZE((struct varlena *) newVal); + } + value1[i] = (Datum) palloc(attlen); + if (byVal) + value1[i] = newVal; + else + memmove((char *) (value1[i]), (char *) newVal, attlen); + noInitValue[i] = 0; + nulls[i] = 0; } - if (attlen == -1) + else { - /* variable length */ - attlen = VARSIZE((struct varlena *) newVal); + + /* + * apply the transition functions. + */ + args[0] = value1[i]; + args[1] = newVal; + value1[i] = + (Datum) fmgr_c(&aggfns->xfn1, + (FmgrValues *) args, + &isNull1); + Assert(!isNull1); } - value1[i] = (Datum) palloc(attlen); - if (byVal) - value1[i] = newVal; - else - memmove((char *) (value1[i]), (char *) newVal, attlen); - noInitValue[i] = 0; - nulls[i] = 0; } - else + + if (aggfns->xfn2.fn_addr != NULL) { + Datum xfn2_val = value2[i]; - /* - * apply the transition functions. - */ - args[0] = value1[i]; - args[1] = newVal; - value1[i] = - (Datum) fmgr_c(&aggfns->xfn1, - (FmgrValues *) args, - &isNull1); - Assert(!isNull1); + value2[i] = + (Datum) fmgr_c(&aggfns->xfn2, + (FmgrValues *) &xfn2_val, &isNull2); + Assert(!isNull2); } } - if (aggfns->xfn2.fn_addr != NULL) - { - Datum xfn2_val = value2[i]; + /* + * keep this for the projection (we only need one of these - + * all the tuples we aggregate over share the same group + * column) + */ + if (!oneTuple) + oneTuple = heap_copytuple(outerslot->val); - value2[i] = - (Datum) fmgr_c(&aggfns->xfn2, - (FmgrValues *) &xfn2_val, &isNull2); - Assert(!isNull2); - } + nTuplesAgged++; } - /* - * keep this for the projection (we only need one of these - all - * the tuples we aggregate over share the same group column) + /* -------------- + * finalize the aggregate (if necessary), and get the resultant value + * -------------- */ - if (!oneTuple) - oneTuple = heap_copytuple(outerslot->val); - - nTuplesAgged++; - } - - /* -------------- - * finalize the aggregate (if necessary), and get the resultant value - * -------------- - */ - for (i = 0; i < nagg; i++) - { - char *args[2]; - AggFuncInfo *aggfns = &aggFuncInfo[i]; - - if (noInitValue[i]) + for (i = 0; i < nagg; i++) { + char *args[2]; + AggFuncInfo *aggfns = &aggFuncInfo[i]; - /* - * No values found for this agg; return current state. This - * seems to fix behavior for avg() aggregate. -tgl 12/96 - */ - } - else if (aggfns->finalfn.fn_addr != NULL && nTuplesAgged > 0) - { - if (aggfns->finalfn.fn_nargs > 1) + if (noInitValue[i]) { - args[0] = (char *) value1[i]; - args[1] = (char *) value2[i]; + + /* + * No values found for this agg; return current state. + * This seems to fix behavior for avg() aggregate. -tgl + * 12/96 + */ + } + else if (aggfns->finalfn.fn_addr != NULL && nTuplesAgged > 0) + { + if (aggfns->finalfn.fn_nargs > 1) + { + args[0] = (char *) value1[i]; + args[1] = (char *) value2[i]; + } + else if (aggfns->xfn1.fn_addr != NULL) + args[0] = (char *) value1[i]; + else if (aggfns->xfn2.fn_addr != NULL) + args[0] = (char *) value2[i]; + else + elog(NOTICE, "ExecAgg: no valid transition functions??"); + value1[i] = (Datum) fmgr_c(&aggfns->finalfn, + (FmgrValues *) args, &(nulls[i])); } else if (aggfns->xfn1.fn_addr != NULL) - args[0] = (char *) value1[i]; + { + + /* + * value in the right place, ignore. (If you remove this + * case, fix the else part. -ay 2/95) + */ + } else if (aggfns->xfn2.fn_addr != NULL) - args[0] = (char *) value2[i]; + value1[i] = value2[i]; else - elog(NOTICE, "ExecAgg: no valid transition functions??"); - value1[i] = (Datum) fmgr_c(&aggfns->finalfn, - (FmgrValues *) args, &(nulls[i])); + elog(ERROR, "ExecAgg: no valid transition functions??"); } - else if (aggfns->xfn1.fn_addr != NULL) - { - /* - * value in the right place, ignore. (If you remove this case, - * fix the else part. -ay 2/95) - */ + /* + * whether the aggregation is done depends on whether we are doing + * aggregation over groups or the entire table + */ + if (nodeTag(outerPlan) == T_Group) + { + /* aggregation over groups */ + aggstate->agg_done = ((Group *) outerPlan)->grpstate->grp_done; } - else if (aggfns->xfn2.fn_addr != NULL) - value1[i] = value2[i]; else - elog(ERROR, "ExecAgg: no valid transition functions??"); - } + aggstate->agg_done = TRUE; - /* - * whether the aggregation is done depends on whether we are doing - * aggregation over groups or the entire table - */ - if (nodeTag(outerPlan) == T_Group) - { - /* aggregation over groups */ - aggstate->agg_done = ((Group *) outerPlan)->grpstate->grp_done; - } - else - aggstate->agg_done = TRUE; + /* ---------------- + * form a projection tuple, store it in the result tuple + * slot and return it. + * ---------------- + */ - /* ---------------- - * form a projection tuple, store it in the result tuple - * slot and return it. - * ---------------- - */ - - ExecStoreTuple(oneTuple, - aggstate->csstate.css_ScanTupleSlot, - InvalidBuffer, - false); - econtext->ecxt_scantuple = aggstate->csstate.css_ScanTupleSlot; - - resultSlot = ExecProject(projInfo, &isDone); - - /* As long as the retrieved group does not match the qualifications it is ignored and - * the next group is fetched */ - qual_result=ExecQual(fix_opids(node->plan.qual),econtext); - if (oneTuple) - pfree(oneTuple); - } - while((node->plan.qual!=NULL) && (qual_result!=true)); + ExecStoreTuple(oneTuple, + aggstate->csstate.css_ScanTupleSlot, + InvalidBuffer, + false); + econtext->ecxt_scantuple = aggstate->csstate.css_ScanTupleSlot; + + resultSlot = ExecProject(projInfo, &isDone); + + /* + * As long as the retrieved group does not match the + * qualifications it is ignored and the next group is fetched + */ + qual_result = ExecQual(fix_opids(node->plan.qual), econtext); + if (oneTuple) + pfree(oneTuple); + } + while ((node->plan.qual != NULL) && (qual_result != true)); return resultSlot; } diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c index aea1873934..1c2217cdc4 100644 --- a/src/backend/executor/nodeAppend.c +++ b/src/backend/executor/nodeAppend.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeAppend.c,v 1.14 1998/07/15 22:16:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeAppend.c,v 1.15 1998/09/01 04:28:26 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -158,7 +158,7 @@ exec_append_initialize_next(Append *node) { estate->es_result_relation_info = (RelationInfo *) nth(whichplan, - appendstate->as_result_relation_info_list); + appendstate->as_result_relation_info_list); } result_slot->ttc_whichplan = whichplan; @@ -505,8 +505,8 @@ void ExecReScanAppend(Append *node, ExprContext *exprCtxt, Plan *parent) { AppendState *appendstate = node->appendstate; - int nplans = length(node->appendplans); - int i; + int nplans = length(node->appendplans); + int i; for (i = 0; i < nplans; i++) { @@ -517,7 +517,7 @@ ExecReScanAppend(Append *node, ExprContext *exprCtxt, Plan *parent) if (rescanNode->chgParam == NULL) { exec_append_initialize_next(node); - ExecReScan((Plan *)rescanNode, exprCtxt, (Plan *) node); + ExecReScan((Plan *) rescanNode, exprCtxt, (Plan *) node); } } appendstate->as_whichplan = 0; diff --git a/src/backend/executor/nodeGroup.c b/src/backend/executor/nodeGroup.c index cecae67b78..1fdf6bedc3 100644 --- a/src/backend/executor/nodeGroup.c +++ b/src/backend/executor/nodeGroup.c @@ -13,7 +13,7 @@ * columns. (ie. tuples from the same group are consecutive) * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.21 1998/07/16 02:58:09 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.22 1998/09/01 04:28:28 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -30,8 +30,7 @@ static TupleTableSlot *ExecGroupEveryTuple(Group *node); static TupleTableSlot *ExecGroupOneTuple(Group *node); -static bool -sameGroup(HeapTuple oldslot, HeapTuple newslot, +static bool sameGroup(HeapTuple oldslot, HeapTuple newslot, int numCols, AttrNumber *grpColIdx, TupleDesc tupdesc); /* --------------------------------------- diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 9fa3f01190..634411a7c6 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.22 1998/09/01 03:22:23 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.23 1998/09/01 04:28:29 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -45,8 +45,7 @@ static void mk_hj_temp(char *tempname); static int hashFunc(char *key, int len); static int ExecHashPartition(Hash *node); static RelativeAddr hashTableAlloc(int size, HashJoinTable hashtable); -static void -ExecHashOverflowInsert(HashJoinTable hashtable, +static void ExecHashOverflowInsert(HashJoinTable hashtable, HashBucket bucket, HeapTuple heapTuple); diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index c4a52fe910..deef889522 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.12 1998/09/01 03:22:25 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.13 1998/09/01 04:28:31 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -28,12 +28,10 @@ static TupleTableSlot * ExecHashJoinOuterGetTuple(Plan *node, Plan *parent, HashJoinState *hjstate); -static TupleTableSlot * -ExecHashJoinGetSavedTuple(HashJoinState *hjstate, char *buffer, +static TupleTableSlot *ExecHashJoinGetSavedTuple(HashJoinState *hjstate, char *buffer, File file, TupleTableSlot *tupleSlot, int *block, char **position); -static int -ExecHashJoinGetBatch(int bucketno, HashJoinTable hashtable, +static int ExecHashJoinGetBatch(int bucketno, HashJoinTable hashtable, int nbatch); static int ExecHashJoinNewBatch(HashJoinState *hjstate); diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c index 03b43f09b5..2df3b98a44 100644 --- a/src/backend/executor/nodeIndexscan.c +++ b/src/backend/executor/nodeIndexscan.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.26 1998/09/01 03:22:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.27 1998/09/01 04:28:32 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -85,8 +85,8 @@ IndexNext(IndexScan *node) EState *estate; CommonScanState *scanstate; IndexScanState *indexstate; - ScanDirection direction; - Snapshot snapshot; + ScanDirection direction; + Snapshot snapshot; IndexScanDescPtr scanDescs; IndexScanDesc scandesc; Relation heapRelation; @@ -95,7 +95,7 @@ IndexNext(IndexScan *node) TupleTableSlot *slot; Buffer buffer = InvalidBuffer; int numIndices; - + /* ---------------- * extract necessary information from index scan node * ---------------- @@ -122,39 +122,40 @@ IndexNext(IndexScan *node) while ((result = index_getnext(scandesc, direction)) != NULL) { tuple = heap_fetch(heapRelation, snapshot, - &result->heap_iptr, &buffer); + &result->heap_iptr, &buffer); pfree(result); if (tuple != NULL) { bool prev_matches = false; int prev_index; - + /* ---------------- - * store the scanned tuple in the scan tuple slot of - * the scan state. Eventually we will only do this and not - * return a tuple. Note: we pass 'false' because tuples - * returned by amgetnext are pointers onto disk pages and - * were not created with palloc() and so should not be pfree()'d. - * ---------------- - */ - ExecStoreTuple(tuple, /* tuple to store */ - slot, /* slot to store in */ - buffer, /* buffer associated with tuple */ - false); /* don't pfree */ + * store the scanned tuple in the scan tuple slot of + * the scan state. Eventually we will only do this and not + * return a tuple. Note: we pass 'false' because tuples + * returned by amgetnext are pointers onto disk pages and + * were not created with palloc() and so should not be pfree()'d. + * ---------------- + */ + ExecStoreTuple(tuple, /* tuple to store */ + slot, /* slot to store in */ + buffer, /* buffer associated with tuple */ + false); /* don't pfree */ /* - * We must check to see if the current tuple would have been - * matched by an earlier index, so we don't double report it. - * We do this by passing the tuple through ExecQual and look - * for failure with all previous qualifications. + * We must check to see if the current tuple would have + * been matched by an earlier index, so we don't double + * report it. We do this by passing the tuple through + * ExecQual and look for failure with all previous + * qualifications. */ for (prev_index = 0; prev_index < indexstate->iss_IndexPtr; - prev_index++) + prev_index++) { scanstate->cstate.cs_ExprContext->ecxt_scantuple = slot; if (ExecQual(nth(prev_index, node->indxqual), - scanstate->cstate.cs_ExprContext)) + scanstate->cstate.cs_ExprContext)) { prev_matches = true; break; @@ -259,17 +260,16 @@ ExecIndexReScan(IndexScan *node, ExprContext *exprCtxt, Plan *parent) indxqual = node->indxqual; numScanKeys = indexstate->iss_NumScanKeys; indexstate->iss_IndexPtr = 0; - + /* it's possible in subselects */ if (exprCtxt == NULL) exprCtxt = node->scan.scanstate->cstate.cs_ExprContext; node->scan.scanstate->cstate.cs_ExprContext->ecxt_outertuple = exprCtxt->ecxt_outertuple; - + /* - * get the index qualifications and recalculate the appropriate - * values + * get the index qualifications and recalculate the appropriate values */ for (i = 0; i < numIndices; i++) { @@ -282,17 +282,19 @@ ExecIndexReScan(IndexScan *node, ExprContext *exprCtxt, Plan *parent) run_keys = (int *) runtimeKeyInfo[i]; for (j = 0; j < n_keys; j++) { + /* * If we have a run-time key, then extract the run-time * expression and evaluate it with respect to the current - * outer tuple. We then stick the result into the scan key. + * outer tuple. We then stick the result into the scan + * key. */ if (run_keys[j] != NO_OP) { clause = nth(j, qual); scanexpr = (run_keys[j] == RIGHT_OP) ? (Node *) get_rightop(clause) : (Node *) get_leftop(clause); - + /* * pass in isDone but ignore it. We don't iterate in * quals @@ -333,7 +335,7 @@ ExecEndIndexScan(IndexScan *node) IndexScanState *indexstate; Pointer *runtimeKeyInfo; ScanKey *scanKeys; - List *indxqual; + List *indxqual; int *numScanKeys; int numIndices; int i; @@ -342,7 +344,7 @@ ExecEndIndexScan(IndexScan *node) indexstate = node->indxstate; indxqual = node->indxqual; runtimeKeyInfo = (Pointer *) indexstate->iss_RuntimeKeyInfo; - + /* ---------------- * extract information from the node * ---------------- @@ -381,7 +383,7 @@ ExecEndIndexScan(IndexScan *node) pfree(numScanKeys); if (runtimeKeyInfo) - { + { for (i = 0; i < numIndices; i++) { List *qual; @@ -394,7 +396,7 @@ ExecEndIndexScan(IndexScan *node) } pfree(runtimeKeyInfo); } - + /* ---------------- * clear out tuple table slots |