OSDN Git Service

Remove all time travel stuff. Small parser cleanup.
authorBruce Momjian <bruce@momjian.us>
Thu, 20 Nov 1997 23:24:03 +0000 (23:24 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 20 Nov 1997 23:24:03 +0000 (23:24 +0000)
66 files changed:
src/backend/access/gist/gist.c
src/backend/access/hash/hash.c
src/backend/access/heap/heapam.c
src/backend/access/index/istrat.c
src/backend/access/nbtree/nbtinsert.c
src/backend/access/nbtree/nbtree.c
src/backend/access/rtree/rtree.c
src/backend/bootstrap/bootstrap.c
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/indexing.c
src/backend/catalog/pg_operator.c
src/backend/catalog/pg_type.c
src/backend/commands/async.c
src/backend/commands/cluster.c
src/backend/commands/command.c
src/backend/commands/copy.c
src/backend/commands/proclang.c
src/backend/commands/purge.c
src/backend/commands/recipe.c
src/backend/commands/remove.c
src/backend/commands/trigger.c
src/backend/commands/vacuum.c
src/backend/commands/view.c
src/backend/executor/execAmi.c
src/backend/executor/execMain.c
src/backend/executor/execUtils.c
src/backend/executor/nodeIndexscan.c
src/backend/executor/nodeMaterial.c
src/backend/executor/nodeSeqscan.c
src/backend/executor/nodeTee.c
src/backend/nodes/copyfuncs.c
src/backend/optimizer/path/indxpath.c
src/backend/optimizer/prep/archive.c [deleted file]
src/backend/optimizer/prep/prepunion.c
src/backend/optimizer/util/plancat.c
src/backend/parser/Makefile
src/backend/parser/analyze.c
src/backend/parser/catalog_utils.c
src/backend/parser/dbcommands.c
src/backend/parser/gram.y
src/backend/parser/parse_query.c
src/backend/parser/parser.c
src/backend/parser/scan.l
src/backend/parser/sysfunc.c [deleted file]
src/backend/rewrite/rewriteRemove.c
src/backend/rewrite/rewriteSupport.c
src/backend/storage/large_object/inv_api.c
src/backend/tcop/aclchk.c
src/backend/utils/adt/not_in.c
src/backend/utils/adt/regproc.c
src/backend/utils/adt/selfuncs.c
src/backend/utils/adt/sets.c
src/backend/utils/cache/catcache.c
src/backend/utils/cache/relcache.c
src/backend/utils/misc/database.c
src/backend/utils/time/tqual.c
src/include/access/heapam.h
src/include/access/relscan.h
src/include/access/valid.h
src/include/executor/executor.h
src/include/nodes/parsenodes.h
src/include/optimizer/prep.h
src/include/parser/parse_query.h
src/include/parser/sysfunc.h
src/include/utils/tqual.h

index f39b49c..e9ea304 100644 (file)
@@ -169,7 +169,7 @@ gistbuild(Relation heap,
                econtext = NULL;
        }
 #endif                                                 /* OMIT_PARTIAL_INDEX */
-       scan = heap_beginscan(heap, 0, NowTimeQual, 0, (ScanKey) NULL);
+       scan = heap_beginscan(heap, 0, false, 0, (ScanKey) NULL);
        htup = heap_getnext(scan, 0, &buffer);
 
        /* int the tuples as we insert them */
index 93ae288..bcfe5fd 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.16 1997/09/08 21:40:45 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.17 1997/11/20 23:19:50 momjian Exp $
  *
  * NOTES
  *       This file contains only the public interface routines.
@@ -121,7 +121,7 @@ hashbuild(Relation heap,
 #endif                                                 /* OMIT_PARTIAL_INDEX */
 
        /* start a heap scan */
-       hscan = heap_beginscan(heap, 0, NowTimeQual, 0, (ScanKey) NULL);
+       hscan = heap_beginscan(heap, 0, false, 0, (ScanKey) NULL);
        htup = heap_getnext(hscan, 0, &buffer);
 
        /* build the index */
index cc173f4..53fd3f8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.21 1997/11/02 15:24:26 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.22 1997/11/20 23:19:57 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -215,7 +215,7 @@ heapgettup(Relation relation,
                   ItemPointer tid,
                   int dir,
                   Buffer *b,
-                  TimeQual timeQual,
+                  bool seeself,
                   int nkeys,
                   ScanKey key)
 {
@@ -254,19 +254,11 @@ heapgettup(Relation relation,
                elog(DEBUG, "heapgettup(%.16s, tid=0x%x, dir=%d, ...)",
                         RelationGetRelationName(relation), tid, dir);
        }
-       elog(DEBUG, "heapgettup(..., b=0x%x, timeQ=0x%x, nkeys=%d, key=0x%x",
-                b, timeQual, nkeys, key);
-       if (timeQual == SelfTimeQual)
-       {
-               elog(DEBUG, "heapgettup: relation(%c)=`%.16s', SelfTimeQual",
-                        relation->rd_rel->relkind, &relation->rd_rel->relname);
-       }
-       else
-       {
-               elog(DEBUG, "heapgettup: relation(%c)=`%.16s', timeQual=%d",
-                        relation->rd_rel->relkind, &relation->rd_rel->relname,
-                        timeQual);
-       }
+       elog(DEBUG, "heapgettup(..., b=0x%x, nkeys=%d, key=0x%x", b, nkeys, key);
+
+       elog(DEBUG, "heapgettup: relation(%c)=`%.16s', %s",
+                relation->rd_rel->relkind, &relation->rd_rel->relname,
+                (seeself == true) ? "SeeSelf" : "NoSeeSelf");
 #endif                                                 /* !defined(HEAPDEBUGALL) */
 
        if (!ItemPointerIsValid(tid))
@@ -303,9 +295,7 @@ heapgettup(Relation relation,
 
 #ifndef NO_BUFFERISVALID
                if (!BufferIsValid(*b))
-               {
                        elog(WARN, "heapgettup: failed ReadBuffer");
-               }
 #endif
 
                dp = (Page) BufferGetPage(*b);
@@ -430,7 +420,7 @@ heapgettup(Relation relation,
                         * ----------------
                         */
                        HeapTupleSatisfies(lpp, relation, *b, (PageHeader) dp,
-                                                          timeQual, nkeys, key, rtup);
+                                                          seeself, nkeys, key, rtup);
                        if (rtup != NULL)
                        {
                                ItemPointer iptr = &(rtup->t_ctid);
@@ -618,7 +608,7 @@ heap_close(Relation relation)
 HeapScanDesc
 heap_beginscan(Relation relation,
                           int atend,
-                          TimeQual timeQual,
+                          bool seeself,
                           unsigned nkeys,
                           ScanKey key)
 {
@@ -646,9 +636,7 @@ heap_beginscan(Relation relation,
 
        /* XXX someday assert SelfTimeQual if relkind == RELKIND_UNCATALOGED */
        if (relation->rd_rel->relkind == RELKIND_UNCATALOGED)
-       {
-               timeQual = SelfTimeQual;
-       }
+               seeself = true;
 
        /* ----------------
         *      increment relation ref count while scanning relation
@@ -666,24 +654,19 @@ heap_beginscan(Relation relation,
        sdesc->rs_rd = relation;
 
        if (nkeys)
-       {
-
                /*
                 * we do this here instead of in initsdesc() because heap_rescan
                 * also calls initsdesc() and we don't want to allocate memory
                 * again
                 */
                sdesc->rs_key = (ScanKey) palloc(sizeof(ScanKeyData) * nkeys);
-       }
        else
-       {
                sdesc->rs_key = NULL;
-       }
 
        initsdesc(sdesc, relation, atend, nkeys, key);
 
        sdesc->rs_atend = atend;
-       sdesc->rs_tr = timeQual;
+       sdesc->rs_seeself = seeself;
        sdesc->rs_nkeys = (short) nkeys;
 
        return (sdesc);
@@ -900,7 +883,7 @@ heap_getnext(HeapScanDesc scandesc,
                                                   iptr,
                                                   -1,
                                                   &(sdesc->rs_cbuf),
-                                                  sdesc->rs_tr,
+                                                  sdesc->rs_seeself,
                                                   sdesc->rs_nkeys,
                                                   sdesc->rs_key);
                }
@@ -987,7 +970,7 @@ heap_getnext(HeapScanDesc scandesc,
                                                   iptr,
                                                   1,
                                                   &sdesc->rs_cbuf,
-                                                  sdesc->rs_tr,
+                                                  sdesc->rs_seeself,
                                                   sdesc->rs_nkeys,
                                                   sdesc->rs_key);
                }
@@ -1032,7 +1015,7 @@ heap_getnext(HeapScanDesc scandesc,
  */
 HeapTuple
 heap_fetch(Relation relation,
-                  TimeQual timeQual,
+                  bool seeself,
                   ItemPointer tid,
                   Buffer *b)
 {
@@ -1094,7 +1077,7 @@ heap_fetch(Relation relation,
         */
 
        HeapTupleSatisfies(lp, relation, buffer, dp,
-                                          timeQual, 0, (ScanKey) NULL, tuple);
+                                          seeself, 0, (ScanKey) NULL, tuple);
 
        if (tuple == NULL)
        {
@@ -1259,7 +1242,7 @@ heap_delete(Relation relation, ItemPointer tid)
         * ----------------
         */
        HeapTupleSatisfies(lp, relation, b, dp,
-                                          NowTimeQual, 0, (ScanKey) NULL, tp);
+                                          false, 0, (ScanKey) NULL, tp);
        if (!tp)
        {
 
@@ -1395,7 +1378,7 @@ heap_replace(Relation relation, ItemPointer otid, HeapTuple tup)
                                                 relation,
                                                 buffer,
                                                 (PageHeader) dp,
-                                                NowTimeQual,
+                                                false,
                                                 0,
                                                 (ScanKey) NULL,
                                                 tuple);
@@ -1492,7 +1475,7 @@ heap_markpos(HeapScanDesc sdesc)
                                           (ItemPointer) NULL : &sdesc->rs_ctup->t_ctid,
                                           -1,
                                           &sdesc->rs_pbuf,
-                                          sdesc->rs_tr,
+                                          sdesc->rs_seeself,
                                           sdesc->rs_nkeys,
                                           sdesc->rs_key);
 
@@ -1506,7 +1489,7 @@ heap_markpos(HeapScanDesc sdesc)
                                           (ItemPointer) NULL : &sdesc->rs_ctup->t_ctid,
                                           1,
                                           &sdesc->rs_nbuf,
-                                          sdesc->rs_tr,
+                                          sdesc->rs_seeself,
                                           sdesc->rs_nkeys,
                                           sdesc->rs_key);
        }
@@ -1594,7 +1577,7 @@ heap_restrpos(HeapScanDesc sdesc)
                                           &sdesc->rs_mptid,
                                           0,
                                           &sdesc->rs_pbuf,
-                                          NowTimeQual,
+                                          false,
                                           0,
                                           (ScanKey) NULL);
        }
@@ -1610,7 +1593,7 @@ heap_restrpos(HeapScanDesc sdesc)
                                           &sdesc->rs_mctid,
                                           0,
                                           &sdesc->rs_cbuf,
-                                          NowTimeQual,
+                                          false,
                                           0,
                                           (ScanKey) NULL);
        }
@@ -1626,7 +1609,7 @@ heap_restrpos(HeapScanDesc sdesc)
                                           &sdesc->rs_mntid,
                                           0,
                                           &sdesc->rs_nbuf,
-                                          NowTimeQual,
+                                          false,
                                           0,
                                           (ScanKey) NULL);
        }
index d47ceed..3669359 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.12 1997/09/08 21:41:07 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/index/Attic/istrat.c,v 1.13 1997/11/20 23:20:07 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -508,7 +508,7 @@ OperatorRelationFillScanKeyEntry(Relation operatorRelation,
                                                   ObjectIdEqualRegProcedure,
                                                   ObjectIdGetDatum(operatorObjectId));
 
-       scan = heap_beginscan(operatorRelation, false, NowTimeQual,
+       scan = heap_beginscan(operatorRelation, false, false,
                                                  1, &scanKeyData);
 
        tuple = heap_getnext(scan, false, (Buffer *) NULL);
@@ -564,7 +564,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy,
                                                   ObjectIdGetDatum(indexObjectId));
 
        relation = heap_openr(IndexRelationName);
-       scan = heap_beginscan(relation, false, NowTimeQual, 1, entry);
+       scan = heap_beginscan(relation, false, false, 1, entry);
        tuple = heap_getnext(scan, 0, (Buffer *) NULL);
        if (!HeapTupleIsValid(tuple))
                elog(WARN, "IndexSupportInitialize: corrupted catalogs");
@@ -628,7 +628,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy,
                        entry[1].sk_argument =
                                ObjectIdGetDatum(operatorClassObjectId[attributeNumber - 1]);
 
-                       scan = heap_beginscan(relation, false, NowTimeQual, 2, entry);
+                       scan = heap_beginscan(relation, false, false, 2, entry);
 
                        while (tuple = heap_getnext(scan, 0, (Buffer *) NULL),
                                   HeapTupleIsValid(tuple))
@@ -671,7 +671,7 @@ IndexSupportInitialize(IndexStrategy indexStrategy,
                for (strategy = 1; strategy <= maxStrategyNumber; strategy++)
                        ScanKeyEntrySetIllegal(StrategyMapGetScanKeyEntry(map, strategy));
 
-               scan = heap_beginscan(relation, false, NowTimeQual, 2, entry);
+               scan = heap_beginscan(relation, false, false, 2, entry);
 
                while (tuple = heap_getnext(scan, 0, (Buffer *) NULL),
                           HeapTupleIsValid(tuple))
index f634cf6..340d830 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.20 1997/09/08 21:41:18 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtinsert.c,v 1.21 1997/11/20 23:20:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -120,7 +120,7 @@ _bt_doinsert(Relation rel, BTItem btitem, bool index_is_unique, Relation heapRel
                        {                                       /* they're equal */
                                btitem = (BTItem) PageGetItem(page, PageGetItemId(page, offset));
                                itup = &(btitem->bti_itup);
-                               htup = heap_fetch(heapRel, SelfTimeQual, &(itup->t_tid), NULL);
+                               htup = heap_fetch(heapRel, true, &(itup->t_tid), NULL);
                                if (htup != (HeapTuple) NULL)
                                {                               /* it is a duplicate */
                                        elog(WARN, "Cannot insert a duplicate key into a unique index.");
index 0bdd55d..bf4c1bf 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.23 1997/09/08 21:41:24 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.24 1997/11/20 23:20:21 momjian Exp $
  *
  * NOTES
  *       This file contains only the public interface routines.
@@ -153,7 +153,7 @@ btbuild(Relation heap,
 #endif                                                 /* OMIT_PARTIAL_INDEX */
 
        /* start a heap scan */
-       hscan = heap_beginscan(heap, 0, NowTimeQual, 0, (ScanKey) NULL);
+       hscan = heap_beginscan(heap, 0, false, 0, (ScanKey) NULL);
        htup = heap_getnext(hscan, 0, &buffer);
 
        /* build the index */
index 9415fc1..a51f3c3 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.18 1997/09/18 20:19:59 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.19 1997/11/20 23:20:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -164,7 +164,7 @@ rtbuild(Relation heap,
                slot = NULL;
        }
 #endif                                                 /* OMIT_PARTIAL_INDEX */
-       scan = heap_beginscan(heap, 0, NowTimeQual, 0, (ScanKey) NULL);
+       scan = heap_beginscan(heap, 0, false, 0, (ScanKey) NULL);
        htup = heap_getnext(scan, 0, &buffer);
 
        /* count the tuples as we insert them */
index 29409a7..074a85a 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.27 1997/11/17 16:58:55 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.28 1997/11/20 23:20:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -487,14 +487,14 @@ boot_openrel(char *relname)
        {
                StartPortalAllocMode(DefaultAllocMode, 0);
                rdesc = heap_openr(TypeRelationName);
-               sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 0, (ScanKey) NULL);
+               sdesc = heap_beginscan(rdesc, 0, false, 0, (ScanKey) NULL);
                for (i = 0; PointerIsValid(tup = heap_getnext(sdesc, 0, (Buffer *) NULL)); ++i);
                heap_endscan(sdesc);
                app = Typ = ALLOC(struct typmap *, i + 1);
                while (i-- > 0)
                        *app++ = ALLOC(struct typmap, 1);
                *app = (struct typmap *) NULL;
-               sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 0, (ScanKey) NULL);
+               sdesc = heap_beginscan(rdesc, 0, false, 0, (ScanKey) NULL);
                app = Typ;
                while (PointerIsValid(tup = heap_getnext(sdesc, 0, (Buffer *) NULL)))
                {
@@ -852,7 +852,7 @@ gettype(char *type)
                if (DebugMode)
                        printf("bootstrap.c: External Type: %s\n", type);
                rdesc = heap_openr(TypeRelationName);
-               sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 0, (ScanKey) NULL);
+               sdesc = heap_beginscan(rdesc, 0, false, 0, (ScanKey) NULL);
                i = 0;
                while (PointerIsValid(tup = heap_getnext(sdesc, 0, (Buffer *) NULL)))
                        ++i;
@@ -861,7 +861,7 @@ gettype(char *type)
                while (i-- > 0)
                        *app++ = ALLOC(struct typmap, 1);
                *app = (struct typmap *) NULL;
-               sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 0, (ScanKey) NULL);
+               sdesc = heap_beginscan(rdesc, 0, false, 0, (ScanKey) NULL);
                app = Typ;
                while (PointerIsValid(tup = heap_getnext(sdesc, 0, (Buffer *) NULL)))
                {
index 9dbec5c..1955237 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.30 1997/11/02 15:24:55 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.31 1997/11/20 23:20:38 momjian Exp $
  *
  * INTERFACE ROUTINES
  *             heap_creatr()                   - Create an uncataloged heap relation
@@ -500,7 +500,7 @@ RelationAlreadyExists(Relation pg_class_desc, char relname[])
         */
        pg_class_scan = heap_beginscan(pg_class_desc,
                                                                   0,
-                                                                  NowTimeQual,
+                                                                  false,
                                                                   1,
                                                                   &key);
 
@@ -903,7 +903,7 @@ RelationRemoveInheritance(Relation relation)
 
        scan = heap_beginscan(catalogRelation,
                                                  false,
-                                                 NowTimeQual,
+                                                 false,
                                                  1,
                                                  &entry);
 
@@ -931,7 +931,7 @@ RelationRemoveInheritance(Relation relation)
 
        scan = heap_beginscan(catalogRelation,
                                                  false,
-                                                 NowTimeQual,
+                                                 false,
                                                  1,
                                                  &entry);
 
@@ -959,7 +959,7 @@ RelationRemoveInheritance(Relation relation)
 
        scan = heap_beginscan(catalogRelation,
                                                  false,
-                                                 NowTimeQual,
+                                                 false,
                                                  1,
                                                  &entry);
 
@@ -998,7 +998,7 @@ RelationRemoveIndexes(Relation relation)
 
        scan = heap_beginscan(indexRelation,
                                                  false,
-                                                 NowTimeQual,
+                                                 false,
                                                  1,
                                                  &entry);
 
@@ -1046,7 +1046,7 @@ DeletePgRelationTuple(Relation rdesc)
 
        pg_class_scan = heap_beginscan(pg_class_desc,
                                                                   0,
-                                                                  NowTimeQual,
+                                                                  false,
                                                                   1,
                                                                   &key);
 
@@ -1110,7 +1110,7 @@ DeletePgAttributeTuples(Relation rdesc)
 
        pg_attribute_scan = heap_beginscan(pg_attribute_desc,
                                                                           0,
-                                                                          NowTimeQual,
+                                                                          false,
                                                                           1,
                                                                           &key);
 
@@ -1179,7 +1179,7 @@ DeletePgTypeTuple(Relation rdesc)
 
        pg_type_scan = heap_beginscan(pg_type_desc,
                                                                  0,
-                                                                 NowTimeQual,
+                                                                 false,
                                                                  1,
                                                                  &key);
 
@@ -1215,7 +1215,7 @@ DeletePgTypeTuple(Relation rdesc)
 
        pg_attribute_scan = heap_beginscan(pg_attribute_desc,
                                                                           0,
-                                                                          NowTimeQual,
+                                                                          false,
                                                                           1,
                                                                           &attkey);
 
@@ -1670,7 +1670,7 @@ RemoveAttrDefault(Relation rel)
 
        RelationSetLockForWrite(adrel);
 
-       adscan = heap_beginscan(adrel, 0, NowTimeQual, 1, &key);
+       adscan = heap_beginscan(adrel, 0, false, 1, &key);
 
        while (tup = heap_getnext(adscan, 0, (Buffer *) NULL), PointerIsValid(tup))
                heap_delete(adrel, &tup->t_ctid);
@@ -1697,7 +1697,7 @@ RemoveRelCheck(Relation rel)
 
        RelationSetLockForWrite(rcrel);
 
-       rcscan = heap_beginscan(rcrel, 0, NowTimeQual, 1, &key);
+       rcscan = heap_beginscan(rcrel, 0, false, 1, &key);
 
        while (tup = heap_getnext(rcscan, 0, (Buffer *) NULL), PointerIsValid(tup))
                heap_delete(rcrel, &tup->t_ctid);
index 9ebfc53..2ba5f55 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.25 1997/11/02 15:25:01 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.26 1997/11/20 23:20:44 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -178,7 +178,7 @@ RelationNameGetObjectId(char *relationName,
                                                   NameEqualRegProcedure,
                                                   PointerGetDatum(relationName));
 
-       pg_class_scan = heap_beginscan(pg_class, 0, NowTimeQual, 1, &key);
+       pg_class_scan = heap_beginscan(pg_class, 0, false, 1, &key);
 
        /* ----------------
         *      if we find the named relation, fetch its relation id
@@ -505,7 +505,7 @@ AccessMethodObjectIdGetAccessMethodTupleForm(Oid accessMethodObjectId)
         * ----------------
         */
        pg_am_desc = heap_openr(AccessMethodRelationName);
-       pg_am_scan = heap_beginscan(pg_am_desc, 0, NowTimeQual, 1, &key);
+       pg_am_scan = heap_beginscan(pg_am_desc, 0, false, 1, &key);
 
        pg_am_tuple = heap_getnext(pg_am_scan, 0, (Buffer *) NULL);
 
@@ -952,7 +952,7 @@ UpdateIndexPredicate(Oid indexoid, Node *oldPred, Node *predicate)
                                                   ObjectIdEqualRegProcedure,
                                                   ObjectIdGetDatum(indexoid));
 
-       scan = heap_beginscan(pg_index, 0, NowTimeQual, 1, &entry);
+       scan = heap_beginscan(pg_index, 0, false, 1, &entry);
        tuple = heap_getnext(scan, 0, &buffer);
        heap_endscan(scan);
 
@@ -1249,7 +1249,7 @@ index_destroy(Oid indexId)
                                                   ObjectIdEqualRegProcedure,
                                                   ObjectIdGetDatum(indexId));;
 
-       scan = heap_beginscan(catalogRelation, 0, NowTimeQual, 1, &entry);
+       scan = heap_beginscan(catalogRelation, 0, false, 1, &entry);
        tuple = heap_getnext(scan, 0, (Buffer *) NULL);
 
        AssertState(HeapTupleIsValid(tuple));
@@ -1266,7 +1266,7 @@ index_destroy(Oid indexId)
 
        entry.sk_attno = Anum_pg_attribute_attrelid;
 
-       scan = heap_beginscan(catalogRelation, 0, NowTimeQual, 1, &entry);
+       scan = heap_beginscan(catalogRelation, 0, false, 1, &entry);
 
        while (tuple = heap_getnext(scan, 0, (Buffer *) NULL),
                   HeapTupleIsValid(tuple))
@@ -1285,7 +1285,7 @@ index_destroy(Oid indexId)
 
        entry.sk_attno = Anum_pg_index_indexrelid;
 
-       scan = heap_beginscan(catalogRelation, 0, NowTimeQual, 1, &entry);
+       scan = heap_beginscan(catalogRelation, 0, false, 1, &entry);
        tuple = heap_getnext(scan, 0, (Buffer *) NULL);
        if (!HeapTupleIsValid(tuple))
        {
@@ -1415,7 +1415,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
        key[0].sk_argument = ObjectIdGetDatum(relid);
 
        pg_class_scan =
-               heap_beginscan(pg_class, 0, NowTimeQual, 1, key);
+               heap_beginscan(pg_class, 0, false, 1, key);
 
        if (!HeapScanIsValid(pg_class_scan))
        {
@@ -1611,7 +1611,7 @@ DefaultBuild(Relation heapRelation,
         */
        scan = heap_beginscan(heapRelation, /* relation */
                                                  0,    /* start at end */
-                                                 NowTimeQual,  /* time range */
+                                                 false, /* seeself */
                                                  0,    /* number of keys */
                                                  (ScanKey) NULL);              /* scan key */
 
@@ -1825,7 +1825,7 @@ IndexIsUniqueNoCache(Oid indexId)
                                                   (RegProcedure) ObjectIdEqualRegProcedure,
                                                   ObjectIdGetDatum(indexId));
 
-       scandesc = heap_beginscan(pg_index, 0, SelfTimeQual, 1, skey);
+       scandesc = heap_beginscan(pg_index, 0, true, 1, skey);
 
        tuple = heap_getnext(scandesc, 0, NULL);
        if (!HeapTupleIsValid(tuple))
index 1927d84..be09fd8 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.15 1997/09/08 21:42:20 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.16 1997/11/20 23:20:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -242,7 +242,7 @@ CatalogIndexFetchTuple(Relation heapRelation,
                        ItemPointer iptr;
 
                        iptr = &indexRes->heap_iptr;
-                       tuple = heap_fetch(heapRelation, NowTimeQual, iptr, &buffer);
+                       tuple = heap_fetch(heapRelation, false, iptr, &buffer);
                        pfree(indexRes);
                }
                else
@@ -394,7 +394,7 @@ ProcedureNameIndexScan(Relation heapRelation,
                        ItemPointer iptr;
 
                        iptr = &indexRes->heap_iptr;
-                       tuple = heap_fetch(heapRelation, NowTimeQual, iptr, &buffer);
+                       tuple = heap_fetch(heapRelation, false, iptr, &buffer);
                        pfree(indexRes);
                        if (HeapTupleIsValid(tuple))
                        {
@@ -459,7 +459,7 @@ ProcedureSrcIndexScan(Relation heapRelation, text *procSrc)
                ItemPointer iptr;
 
                iptr = &indexRes->heap_iptr;
-               tuple = heap_fetch(heapRelation, NowTimeQual, iptr, &buffer);
+               tuple = heap_fetch(heapRelation, false, iptr, &buffer);
                pfree(indexRes);
        }
        else
index b3ede1b..32c2a03 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.14 1997/09/18 20:20:18 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.15 1997/11/20 23:20:49 momjian Exp $
  *
  * NOTES
  *       these routines moved here from commands/define.c and somewhat cleaned up.
@@ -116,7 +116,7 @@ OperatorGetWithOpenRelation(Relation pg_operator_desc,
         */
        pg_operator_scan = heap_beginscan(pg_operator_desc,
                                                                          0,
-                                                                         SelfTimeQual,
+                                                                         true,
                                                                          3,
                                                                          opKey);
 
@@ -697,7 +697,7 @@ OperatorDef(char *operatorName,
 
                pg_operator_scan = heap_beginscan(pg_operator_desc,
                                                                                  0,
-                                                                                 SelfTimeQual,
+                                                                                 true,
                                                                                  3,
                                                                                  opKey);
 
@@ -796,7 +796,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
 
        pg_operator_scan = heap_beginscan(pg_operator_desc,
                                                                          0,
-                                                                         SelfTimeQual,
+                                                                         true,
                                                                          1,
                                                                          opKey);
 
@@ -886,7 +886,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
 
        pg_operator_scan = heap_beginscan(pg_operator_desc,
                                                                          0,
-                                                                         SelfTimeQual,
+                                                                         true,
                                                                          1,
                                                                          opKey);
 
index 0c2292a..62f0161 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.11 1997/09/18 20:20:19 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.12 1997/11/20 23:20:50 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -66,7 +66,7 @@ TypeGetWithOpenRelation(Relation pg_type_desc,
 
        scan = heap_beginscan(pg_type_desc,
                                                  0,
-                                                 SelfTimeQual,
+                                                 true,
                                                  1,
                                                  typeKey);
 
@@ -472,7 +472,7 @@ TypeCreate(char *typeName,
        typeKey[0].sk_argument = PointerGetDatum(typeName);
        pg_type_scan = heap_beginscan(pg_type_desc,
                                                                  0,
-                                                                 SelfTimeQual,
+                                                                 true,
                                                                  1,
                                                                  typeKey);
 
index 021d00e..257be8a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.23 1997/11/05 21:18:54 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/async.c,v 1.24 1997/11/20 23:20:56 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -206,7 +206,7 @@ Async_Notify(char *relname)
        lRel = heap_openr(ListenerRelationName);
        tdesc = RelationGetTupleDescriptor(lRel);
        RelationSetLockForWrite(lRel);
-       sRel = heap_beginscan(lRel, 0, NowTimeQual, 1, &key);
+       sRel = heap_beginscan(lRel, 0, false, 1, &key);
 
        nulls[0] = nulls[1] = nulls[2] = ' ';
        repl[0] = repl[1] = repl[2] = ' ';
@@ -287,7 +287,7 @@ Async_NotifyAtCommit()
                                                                   Int32GetDatum(1));
                        lRel = heap_openr(ListenerRelationName);
                        RelationSetLockForWrite(lRel);
-                       sRel = heap_beginscan(lRel, 0, NowTimeQual, 1, &key);
+                       sRel = heap_beginscan(lRel, 0, false, 1, &key);
                        tdesc = RelationGetTupleDescriptor(lRel);
                        ourpid = getpid();
 
@@ -441,7 +441,7 @@ Async_Listen(char *relname, int pid)
 
        /* is someone already listening.  One listener per relation */
        tdesc = RelationGetTupleDescriptor(lDesc);
-       s = heap_beginscan(lDesc, 0, NowTimeQual, 0, (ScanKey) NULL);
+       s = heap_beginscan(lDesc, 0, false, 0, (ScanKey) NULL);
        while (HeapTupleIsValid(htup = heap_getnext(s, 0, &b)))
        {
                d = heap_getattr(htup, b, Anum_pg_listener_relname, tdesc,
@@ -599,7 +599,7 @@ Async_NotifyFrontEnd()
        lRel = heap_openr(ListenerRelationName);
        RelationSetLockForWrite(lRel);
        tdesc = RelationGetTupleDescriptor(lRel);
-       sRel = heap_beginscan(lRel, 0, NowTimeQual, 2, key);
+       sRel = heap_beginscan(lRel, 0, false, 2, key);
 
        nulls[0] = nulls[1] = nulls[2] = ' ';
        repl[0] = repl[1] = repl[2] = ' ';
index 9e93388..3bfdb96 100644 (file)
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.15 1997/09/08 02:21:55 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.16 1997/11/20 23:20:58 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -355,7 +355,7 @@ rebuildheap(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
        {
 
                HeapTid = &ScanResult->heap_iptr;
-               LocalHeapTuple = heap_fetch(LocalOldHeap, 0, HeapTid, &LocalBuffer);
+               LocalHeapTuple = heap_fetch(LocalOldHeap, false, HeapTid, &LocalBuffer);
                OIDNewHeapInsert =
                        heap_insert(LocalNewHeap, LocalHeapTuple);
                pfree(ScanResult);
index 1f80e9e..d33edbb 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.20 1997/10/27 08:55:16 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.21 1997/11/20 23:21:00 momjian Exp $
  *
  * NOTES
  *       The PortalExecutorHeapMemory crap needs to be eliminated
@@ -440,7 +440,7 @@ PerformAddAttribute(char *relationName,
                 * XXX use syscache here as an optimization
                 */
                key[1].sk_argument = (Datum) colDef->colname;
-               attsdesc = heap_beginscan(attrdesc, 0, NowTimeQual, 2, key);
+               attsdesc = heap_beginscan(attrdesc, 0, false, 2, key);
 
 
                tup = heap_getnext(attsdesc, 0, (Buffer *) NULL);
index 8593aa3..fdc998b 100644 (file)
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.34 1997/09/12 04:07:25 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.35 1997/11/20 23:21:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -224,7 +224,7 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp, char *delim)
        int32           ntuples;
        TupleDesc       tupDesc;
 
-       scandesc = heap_beginscan(rel, 0, NULL, 0, NULL);
+       scandesc = heap_beginscan(rel, 0, false, 0, NULL);
 
        attr_count = rel->rd_att->natts;
        attr = rel->rd_att->attrs;
@@ -921,7 +921,7 @@ GetIndexRelations(Oid main_relation_oid,
        bool            isnull;
 
        pg_index_rel = heap_openr(IndexRelationName);
-       scandesc = heap_beginscan(pg_index_rel, 0, NULL, 0, NULL);
+       scandesc = heap_beginscan(pg_index_rel, 0, false, 0, NULL);
        tupDesc = RelationGetTupleDescriptor(pg_index_rel);
 
        *n_indices = 0;
@@ -1198,7 +1198,7 @@ CountTuples(Relation relation)
 
        int                     i;
 
-       scandesc = heap_beginscan(relation, 0, NULL, 0, NULL);
+       scandesc = heap_beginscan(relation, 0, false, 0, NULL);
 
        for (tuple = heap_getnext(scandesc, 0, NULL), i = 0;
                 tuple != NULL;
index 2b8836b..8cc8b5a 100644 (file)
@@ -189,7 +189,7 @@ DropProceduralLanguage(DropPLangStmt * stmt)
        ScanKeyEntryInitialize(&scanKeyData, 0, Anum_pg_language_lanname,
                                                   F_NAMEEQ, PointerGetDatum(languageName));
 
-       scanDesc = heap_beginscan(rdesc, 0, NowTimeQual, 1, &scanKeyData);
+       scanDesc = heap_beginscan(rdesc, 0, false, 1, &scanKeyData);
 
        tup = heap_getnext(scanDesc, 0, (Buffer *) NULL);
 
index 78265c9..b0f6736 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/purge.c,v 1.8 1997/09/08 02:22:11 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/purge.c,v 1.9 1997/11/20 23:21:08 momjian Exp $
  *
  * Note:
  *             XXX There are many instances of int32 instead of ...Time.  These
@@ -110,7 +110,7 @@ RelationPurge(char *relationName,
        key[0].sk_argument = PointerGetDatum(relationName);
        fmgr_info(key[0].sk_procedure, &key[0].sk_func, &key[0].sk_nargs);
 
-       scan = heap_beginscan(relation, 0, NowTimeQual, 1, key);
+       scan = heap_beginscan(relation, 0, false, 1, key);
        oldTuple = heap_getnext(scan, 0, &buffer);
        if (!HeapTupleIsValid(oldTuple))
        {
index 077e882..43d84c5 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.10 1997/10/25 01:08:54 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.11 1997/11/20 23:21:10 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -804,8 +804,7 @@ tg_parseTeeNode(TgRecipe * r,
                                                                                                  tt,
                                                                                                  tt,
                                                                                                  FALSE,
-                                                                                                 FALSE,
-                                                                                                 NULL));
+                                                                                                 FALSE));
                rt_ind = length(orig->rtable);
        }
 
index daa37b6..aaf2127 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.15 1997/09/18 20:20:24 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/Attic/remove.c,v 1.16 1997/11/20 23:21:13 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -95,7 +95,7 @@ RemoveOperator(char *operatorName,            /* operator name */
                                                   ObjectIdGetDatum(typeId2));
 
        relation = heap_openr(OperatorRelationName);
-       scan = heap_beginscan(relation, 0, NowTimeQual, 3, operatorKey);
+       scan = heap_beginscan(relation, 0, false, 3, operatorKey);
        tup = heap_getnext(scan, 0, &buffer);
        if (HeapTupleIsValid(tup))
        {
@@ -163,7 +163,7 @@ SingleOpOperatorRemove(Oid typeOid)
        for (i = 0; i < 3; ++i)
        {
                key[0].sk_attno = attnums[i];
-               sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 1, key);
+               sdesc = heap_beginscan(rdesc, 0, false, 1, key);
                while (PointerIsValid(tup = heap_getnext(sdesc, 0, &buffer)))
                {
                        ItemPointerCopy(&tup->t_ctid, &itemPointerData);
@@ -212,7 +212,7 @@ AttributeAndRelationRemove(Oid typeOid)
        oidptr->next = NULL;
        optr = oidptr;
        rdesc = heap_openr(AttributeRelationName);
-       sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 1, key);
+       sdesc = heap_beginscan(rdesc, 0, false, 1, key);
        while (PointerIsValid(tup = heap_getnext(sdesc, 0, &buffer)))
        {
                ItemPointerCopy(&tup->t_ctid, &itemPointerData);
@@ -233,7 +233,7 @@ AttributeAndRelationRemove(Oid typeOid)
        while (PointerIsValid((char *) optr->next))
        {
                key[0].sk_argument = (Datum) (optr++)->reloid;
-               sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 1, key);
+               sdesc = heap_beginscan(rdesc, 0, false, 1, key);
                tup = heap_getnext(sdesc, 0, &buffer);
                if (PointerIsValid(tup))
                {
@@ -283,7 +283,7 @@ RemoveType(char *typeName)          /* type name to be removed */
 
        typeKey[0].sk_argument = PointerGetDatum(typeName);
 
-       scan = heap_beginscan(relation, 0, NowTimeQual, 1, typeKey);
+       scan = heap_beginscan(relation, 0, false, 1, typeKey);
        tup = heap_getnext(scan, 0, (Buffer *) 0);
        if (!HeapTupleIsValid(tup))
        {
@@ -301,7 +301,7 @@ RemoveType(char *typeName)          /* type name to be removed */
        shadow_type = makeArrayTypeName(typeName);
        typeKey[0].sk_argument = NameGetDatum(shadow_type);
 
-       scan = heap_beginscan(relation, 0, NowTimeQual,
+       scan = heap_beginscan(relation, 0, false,
                                                  1, (ScanKey) typeKey);
        tup = heap_getnext(scan, 0, (Buffer *) 0);
 
@@ -389,7 +389,7 @@ RemoveFunction(char *functionName,          /* function name to be removed */
        fmgr_info(key[0].sk_procedure, &key[0].sk_func, &key[0].sk_nargs);
 
        relation = heap_openr(ProcedureRelationName);
-       scan = heap_beginscan(relation, 0, NowTimeQual, 1, key);
+       scan = heap_beginscan(relation, 0, false, 1, key);
 
        do
        {                                                       /* hope this is ok because it's indexed */
@@ -496,7 +496,7 @@ RemoveAggregate(char *aggName, char *aggType)
                                                   ObjectIdGetDatum(basetypeID));
 
        relation = heap_openr(AggregateRelationName);
-       scan = heap_beginscan(relation, 0, NowTimeQual, 2, aggregateKey);
+       scan = heap_beginscan(relation, 0, false, 2, aggregateKey);
        tup = heap_getnext(scan, 0, (Buffer *) 0);
        if (!HeapTupleIsValid(tup))
        {
index 273136b..3427936 100644 (file)
@@ -119,7 +119,7 @@ CreateTrigger(CreateTrigStmt * stmt)
        RelationSetLockForWrite(tgrel);
        ScanKeyEntryInitialize(&key, 0, Anum_pg_trigger_tgrelid,
                                                   ObjectIdEqualRegProcedure, rel->rd_id);
-       tgscan = heap_beginscan(tgrel, 0, NowTimeQual, 1, &key);
+       tgscan = heap_beginscan(tgrel, 0, false, 1, &key);
        while (tuple = heap_getnext(tgscan, 0, (Buffer *) NULL), PointerIsValid(tuple))
        {
                Form_pg_trigger pg_trigger = (Form_pg_trigger) GETSTRUCT(tuple);
@@ -279,7 +279,7 @@ DropTrigger(DropTrigStmt * stmt)
        RelationSetLockForWrite(tgrel);
        ScanKeyEntryInitialize(&key, 0, Anum_pg_trigger_tgrelid,
                                                   ObjectIdEqualRegProcedure, rel->rd_id);
-       tgscan = heap_beginscan(tgrel, 0, NowTimeQual, 1, &key);
+       tgscan = heap_beginscan(tgrel, 0, false, 1, &key);
        while (tuple = heap_getnext(tgscan, 0, (Buffer *) NULL), PointerIsValid(tuple))
        {
                Form_pg_trigger pg_trigger = (Form_pg_trigger) GETSTRUCT(tuple);
@@ -344,7 +344,7 @@ RelationRemoveTriggers(Relation rel)
        ScanKeyEntryInitialize(&key, 0, Anum_pg_trigger_tgrelid,
                                                   ObjectIdEqualRegProcedure, rel->rd_id);
 
-       tgscan = heap_beginscan(tgrel, 0, NowTimeQual, 1, &key);
+       tgscan = heap_beginscan(tgrel, 0, false, 1, &key);
 
        while (tup = heap_getnext(tgscan, 0, (Buffer *) NULL), PointerIsValid(tup))
                heap_delete(tgrel, &tup->t_ctid);
@@ -395,7 +395,7 @@ RelationBuildTriggers(Relation relation)
                        break;
 
                iptr = &indexRes->heap_iptr;
-               tuple = heap_fetch(tgrel, NowTimeQual, iptr, &buffer);
+               tuple = heap_fetch(tgrel, false, iptr, &buffer);
                pfree(indexRes);
                if (!HeapTupleIsValid(tuple))
                        continue;
@@ -859,7 +859,7 @@ GetTupleForTrigger(Relation relation, ItemPointer tid, bool before)
                }
 
                HeapTupleSatisfies(lp, relation, b, dp,
-                                                  NowTimeQual, 0, (ScanKey) NULL, tuple);
+                                                  false, 0, (ScanKey) NULL, tuple);
                if (!tuple)
                {
                        ReleaseBuffer(b);
index 1ce7b09..2ecc827 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.49 1997/11/02 15:25:07 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.50 1997/11/20 23:21:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -296,7 +296,7 @@ vc_getrels(NameData *VacRelP)
        pgclass = heap_openr(RelationRelationName);
        pgcdesc = RelationGetTupleDescriptor(pgclass);
 
-       pgcscan = heap_beginscan(pgclass, false, NowTimeQual, 1, &pgckey);
+       pgcscan = heap_beginscan(pgclass, false, false, 1, &pgckey);
 
        while (HeapTupleIsValid(pgctup = heap_getnext(pgcscan, 0, &buf)))
        {
@@ -429,7 +429,7 @@ vc_vacone(Oid relid, bool analyze, List *va_cols)
 
        pgclass = heap_openr(RelationRelationName);
        pgcdesc = RelationGetTupleDescriptor(pgclass);
-       pgcscan = heap_beginscan(pgclass, false, NowTimeQual, 1, &pgckey);
+       pgcscan = heap_beginscan(pgclass, false, false, 1, &pgckey);
 
        /*
         * Race condition -- if the pg_class tuple has gone away since the
@@ -1856,7 +1856,7 @@ vc_updstats(Oid relid, int npages, int ntups, bool hasindex, VRelStats *vacrelst
                                                   ObjectIdGetDatum(relid));
 
        rd = heap_openr(RelationRelationName);
-       rsdesc = heap_beginscan(rd, false, NowTimeQual, 1, &rskey);
+       rsdesc = heap_beginscan(rd, false, false, 1, &rskey);
 
        if (!HeapTupleIsValid(rtup = heap_getnext(rsdesc, 0, &rbuf)))
                elog(WARN, "pg_class entry for relid %d vanished during vacuuming",
@@ -1879,7 +1879,7 @@ vc_updstats(Oid relid, int npages, int ntups, bool hasindex, VRelStats *vacrelst
                ScanKeyEntryInitialize(&askey, 0, Anum_pg_attribute_attrelid,
                                                           F_INT4EQ, relid);
 
-               asdesc = heap_beginscan(ad, false, NowTimeQual, 1, &askey);
+               asdesc = heap_beginscan(ad, false, false, 1, &askey);
 
                while (HeapTupleIsValid(atup = heap_getnext(asdesc, 0, &abuf)))
                {
@@ -2027,10 +2027,10 @@ vc_delhilowstats(Oid relid, int attcnt, int *attnums)
                ScanKeyEntryInitialize(&pgskey, 0x0, Anum_pg_statistic_starelid,
                                                           ObjectIdEqualRegProcedure,
                                                           ObjectIdGetDatum(relid));
-               pgsscan = heap_beginscan(pgstatistic, false, NowTimeQual, 1, &pgskey);
+               pgsscan = heap_beginscan(pgstatistic, false, false, 1, &pgskey);
        }
        else
-               pgsscan = heap_beginscan(pgstatistic, false, NowTimeQual, 0, NULL);
+               pgsscan = heap_beginscan(pgstatistic, false, false, 0, NULL);
 
        while (HeapTupleIsValid(pgstup = heap_getnext(pgsscan, 0, NULL)))
        {
@@ -2284,7 +2284,7 @@ vc_getindices(Oid relid, int *nindices, Relation **Irel)
                                                   ObjectIdEqualRegProcedure,
                                                   ObjectIdGetDatum(relid));
 
-       pgiscan = heap_beginscan(pgindex, false, NowTimeQual, 1, &pgikey);
+       pgiscan = heap_beginscan(pgindex, false, false, 1, &pgikey);
 
        while (HeapTupleIsValid(pgitup = heap_getnext(pgiscan, 0, NULL)))
        {
index ca4ff5a..72d6159 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.13 1997/11/17 16:58:59 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.14 1997/11/20 23:21:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -236,10 +236,10 @@ UpdateRangeTableOfViewParse(char *viewName, Query *viewParse)
         */
        rt_entry1 =
                addRangeTableEntry(NULL, (char *) viewName, "*CURRENT*",
-                                                  FALSE, FALSE, NULL);
+                                                  FALSE, FALSE);
        rt_entry2 =
                addRangeTableEntry(NULL, (char *) viewName, "*NEW*",
-                                                  FALSE, FALSE, NULL);
+                                                  FALSE, FALSE);
        new_rt = lcons(rt_entry2, old_rt);
        new_rt = lcons(rt_entry1, new_rt);
 
index ad659f5..bffb0f2 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.8 1997/09/08 21:42:52 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.9 1997/11/20 23:21:22 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@
 
 static Pointer
 ExecBeginScan(Relation relation, int nkeys, ScanKey skeys,
-                         bool isindex, ScanDirection dir, TimeQual time_range);
+                         bool isindex, ScanDirection dir);
 static Relation ExecOpenR(Oid relationOid, bool isindex);
 
 /* ----------------------------------------------------------------
@@ -70,7 +70,6 @@ ExecOpenScanR(Oid relOid,
                          ScanKey skeys,
                          bool isindex,
                          ScanDirection dir,
-                         TimeQual timeRange,
                          Relation *returnRelation, /* return */
                          Pointer *returnScanDesc)      /* return */
 {
@@ -89,8 +88,7 @@ ExecOpenScanR(Oid relOid,
                                                         nkeys,
                                                         skeys,
                                                         isindex,
-                                                        dir,
-                                                        timeRange);
+                                                        dir);
 
        if (returnRelation != NULL)
                *returnRelation = relation;
@@ -146,8 +144,7 @@ ExecBeginScan(Relation relation,
                          int nkeys,
                          ScanKey skeys,
                          bool isindex,
-                         ScanDirection dir,
-                         TimeQual time_range)
+                         ScanDirection dir)
 {
        Pointer         scanDesc;
 
@@ -172,7 +169,7 @@ ExecBeginScan(Relation relation,
        {
                scanDesc = (Pointer) heap_beginscan(relation,
                                                                                        ScanDirectionIsBackward(dir),
-                                                                                       time_range,
+                                                                                       false,
                                                                                        nkeys,
                                                                                        skeys);
        }
index e088f23..45ad2ef 100644 (file)
@@ -26,7 +26,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.30 1997/11/17 16:41:04 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.31 1997/11/20 23:21:24 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1331,13 +1331,11 @@ ExecRelCheck(Relation rel, HeapTuple tuple)
        slot->ttc_buffer = InvalidBuffer;
        slot->ttc_whichplan = -1;
        rte->relname = nameout(&(rel->rd_rel->relname));
-       rte->timeRange = NULL;
        rte->refname = rte->relname;
        rte->relid = rel->rd_id;
        rte->inh = false;
        rte->archive = false;
        rte->inFromCl = true;
-       rte->timeQual = NULL;
        rtlist = lcons(rte, NIL);
        econtext->ecxt_scantuple = slot;        /* scan tuple slot */
        econtext->ecxt_innertuple = NULL;       /* inner tuple slot */
index 2282775..653c4ed 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.20 1997/10/25 01:09:10 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/execUtils.c,v 1.21 1997/11/20 23:21:26 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -756,7 +756,7 @@ ExecOpenIndices(Oid resultRelationOid,
         */
        indexSd = heap_beginscan(indexRd,       /* scan desc */
                                                         false,         /* scan backward flag */
-                                                        NowTimeQual,           /* time qual */
+                                                        false,         /* see self */
                                                         1, /* number scan keys */
                                                         &key);         /* scan keys */
 
index 2ad35f8..ad6920a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.10 1997/09/08 21:43:13 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/nodeIndexscan.c,v 1.11 1997/11/20 23:21:28 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -128,7 +128,7 @@ IndexNext(IndexScan *node)
                {
                        iptr = &result->heap_iptr;
                        tuple = heap_fetch(heapRelation,
-                                                          NowTimeQual,
+                                                          false,
                                                           iptr,
                                                           &buffer);
                        /* be tidy */
@@ -480,7 +480,6 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
        RangeTblEntry *rtentry;
        Index           relid;
        Oid                     reloid;
-       TimeQual        timeQual;
 
        Relation        currentRelation;
        HeapScanDesc currentScanDesc;
@@ -911,14 +910,12 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
        relid = node->scan.scanrelid;
        rtentry = rt_fetch(relid, rangeTable);
        reloid = rtentry->relid;
-       timeQual = rtentry->timeQual;
 
        ExecOpenScanR(reloid,           /* relation */
                                  0,                    /* nkeys */
                                  (ScanKey) NULL,               /* scan key */
                                  0,                    /* is index */
                                  direction,    /* scan direction */
-                                 timeQual,             /* time qual */
                                  &currentRelation,             /* return: rel desc */
                                  (Pointer *) &currentScanDesc);                /* return: scan desc */
 
@@ -957,7 +954,6 @@ ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent)
                                                  scanKeys[i],  /* scan key */
                                                  true, /* is index */
                                                  direction,    /* scan direction */
-                                                 timeQual,             /* time qual */
                                                  &(relationDescs[i]),  /* return: rel desc */
                                                  (Pointer *) &(scanDescs[i]));
                        /* return: scan desc */
index ecb7c0e..e863d25 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.9 1997/09/08 21:43:14 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v 1.10 1997/11/20 23:21:32 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -140,7 +140,7 @@ ExecMaterial(Material *node)
                currentScanDesc = heap_beginscan(currentRelation,               /* relation */
                                                                                 ScanDirectionIsBackward(dir),
                /* bkwd flag */
-                                                                                NowTimeQual,   /* time qual */
+                                                                                false, /* seeself */
                                                                                 0,             /* num scan keys */
                                                                                 NULL); /* scan keys */
                matstate->csstate.css_currentRelation = currentRelation;
index 5bcde93..fd8485d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/nodeSeqscan.c,v 1.7 1997/09/08 21:43:17 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/nodeSeqscan.c,v 1.8 1997/11/20 23:21:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -158,7 +158,6 @@ InitScanRelation(SeqScan *node, EState *estate,
        List       *rangeTable;
        RangeTblEntry *rtentry;
        Oid                     reloid;
-       TimeQual        timeQual;
        ScanDirection direction;
        Relation        currentRelation;
        HeapScanDesc currentScanDesc;
@@ -179,7 +178,6 @@ InitScanRelation(SeqScan *node, EState *estate,
                rangeTable = estate->es_range_table;
                rtentry = rt_fetch(relid, rangeTable);
                reloid = rtentry->relid;
-               timeQual = rtentry->timeQual;
                direction = estate->es_direction;
                resultRelationInfo = estate->es_result_relation_info;
 
@@ -188,7 +186,6 @@ InitScanRelation(SeqScan *node, EState *estate,
                                          NULL,         /* scan key */
                                          0,            /* is index */
                                          direction,/* scan direction */
-                                         timeQual, /* time qual */
                                          &currentRelation, /* return: rel desc */
                                          (Pointer *) &currentScanDesc);        /* return: scan desc */
 
index d7c0c19..149885e 100644 (file)
@@ -15,7 +15,7 @@
  *             ExecEndTee
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.9 1997/09/08 21:43:20 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.10 1997/11/20 23:21:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -252,7 +252,7 @@ initTeeScanDescs(Tee *node)
        {
                teeState->tee_leftScanDesc = heap_beginscan(bufferRel,
                                                                                        ScanDirectionIsBackward(dir),
-                                                                                                       NowTimeQual,            /* time qual */
+                                                                                                       false, /* seeself */
                                                                                                        0,      /* num scan keys */
                                                                                                        NULL            /* scan keys */
                        );
@@ -261,7 +261,7 @@ initTeeScanDescs(Tee *node)
        {
                teeState->tee_rightScanDesc = heap_beginscan(bufferRel,
                                                                                        ScanDirectionIsBackward(dir),
-                                                                                                        NowTimeQual,           /* time qual */
+                                                                                                        false, /* seeself */
                                                                                                         0, /* num scan keys */
                                                                                                         NULL           /* scan keys */
                        );
index 4c46c03..62b72ab 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.14 1997/11/02 15:25:11 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.15 1997/11/20 23:21:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1470,8 +1470,6 @@ _copyRangeTblEntry(RangeTblEntry *from)
                newnode->relname = pstrdup(from->relname);
        if (from->refname)
                newnode->refname = pstrdup(from->refname);
-       newnode->timeRange = NULL;
-       newnode->timeQual = NULL;
 
        return newnode;
 }
index 1527ca4..2fc43e0 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.11 1997/09/08 21:44:55 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.12 1997/11/20 23:21:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -998,7 +998,7 @@ clause_pred_clause_test(Expr *predicate, Node *clause)
         * will be used to find the associated strategy numbers for the test.
         * --Nels, Jan '93
         */
-       scan = heap_beginscan(relation, false, NowTimeQual, 2, entry);
+       scan = heap_beginscan(relation, false, false, 2, entry);
        tuple = heap_getnext(scan, false, (Buffer *) NULL);
        if (!HeapTupleIsValid(tuple))
        {
@@ -1029,7 +1029,7 @@ clause_pred_clause_test(Expr *predicate, Node *clause)
                                                   ObjectIdEqualRegProcedure,
                                                   ObjectIdGetDatum(clause_op));
 
-       scan = heap_beginscan(relation, false, NowTimeQual, 3, entry);
+       scan = heap_beginscan(relation, false, false, 3, entry);
        tuple = heap_getnext(scan, false, (Buffer *) NULL);
        if (!HeapTupleIsValid(tuple))
        {
@@ -1061,7 +1061,7 @@ clause_pred_clause_test(Expr *predicate, Node *clause)
                                                   Integer16EqualRegProcedure,
                                                   Int16GetDatum(test_strategy));
 
-       scan = heap_beginscan(relation, false, NowTimeQual, 3, entry);
+       scan = heap_beginscan(relation, false, false, 3, entry);
        tuple = heap_getnext(scan, false, (Buffer *) NULL);
        if (!HeapTupleIsValid(tuple))
        {
diff --git a/src/backend/optimizer/prep/archive.c b/src/backend/optimizer/prep/archive.c
deleted file mode 100644 (file)
index d053bd6..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * archive.c--
- *       Support for planning scans on archived relations
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/prep/Attic/archive.c,v 1.4 1997/09/08 21:45:29 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include <stdio.h>                             /* for sprintf() */
-#include <sys/types.h>                 /* for u_int in relcache.h */
-#include "postgres.h"
-
-#include "utils/rel.h"
-#include "utils/elog.h"
-#include "utils/palloc.h"
-#include "utils/relcache.h"
-#include "catalog/pg_class.h"
-#include "nodes/pg_list.h"
-#include "nodes/parsenodes.h"
-#include "optimizer/prep.h"
-#include "commands/creatinh.h"
-
-void
-plan_archive(List *rt)
-{
-       List       *rtitem;
-       RangeTblEntry *rte;
-       TimeRange  *trange;
-       Relation        r;
-       Oid                     reloid;
-
-       foreach(rtitem, rt)
-       {
-               rte = lfirst(rtitem);
-               trange = rte->timeRange;
-               if (trange)
-               {
-                       reloid = rte->relid;
-                       r = RelationIdGetRelation(reloid);
-                       if (r->rd_rel->relarch != 'n')
-                       {
-                               rte->archive = true;
-                       }
-               }
-       }
-}
-
-
-/*
- *     find_archive_rels -- Given a particular relid, find the archive
- *                                              relation's relid.
- */
-List      *
-find_archive_rels(Oid relid)
-{
-       Relation        arel;
-       char       *arelName;
-
-       arelName = MakeArchiveName(relid);
-       arel = RelationNameGetRelation(arelName);
-       pfree(arelName);
-
-       return lconsi(arel->rd_id, lconsi(relid, NIL));
-}
index aac9959..47036a2 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.6 1997/09/08 21:45:37 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepunion.c,v 1.7 1997/11/20 23:21:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -178,10 +178,6 @@ plan_union_queries(Index rt_index,
                        union_relids = VersionGetParents(rt_entry->relid);
                        break;
 
-               case ARCHIVE_FLAG:
-                       union_relids = find_archive_rels(rt_entry->relid);
-                       break;
-
                default:
                        /* do nothing */
                        break;
index 6b4d5ee..15271d3 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.10 1997/09/18 20:20:50 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.11 1997/11/20 23:22:01 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -148,7 +148,7 @@ index_info(Query *root, bool first, int relid, IdxInfoRetval *info)
                                                           ObjectIdGetDatum(indrelid));
 
                relation = heap_openr(IndexRelationName);
-               scan = heap_beginscan(relation, 0, NowTimeQual,
+               scan = heap_beginscan(relation, 0, false,
                                                          1, &indexKey);
        }
        if (!HeapScanIsValid(scan))
@@ -420,7 +420,7 @@ find_inheritance_children(Oid inhparent)
 
        key[0].sk_argument = ObjectIdGetDatum((Oid) inhparent);
        relation = heap_openr(InheritsRelationName);
-       scan = heap_beginscan(relation, 0, NowTimeQual, 1, key);
+       scan = heap_beginscan(relation, 0, false, 1, key);
        while (HeapTupleIsValid(inheritsTuple =
                                                        heap_getnext(scan, 0,
                                                                                 (Buffer *) NULL)))
@@ -455,7 +455,7 @@ VersionGetParents(Oid verrelid)
        fmgr_info(F_OIDEQ, &key[0].sk_func, &key[0].sk_nargs);
        relation = heap_openr(VersionRelationName);
        key[0].sk_argument = ObjectIdGetDatum(verrelid);
-       scan = heap_beginscan(relation, 0, NowTimeQual, 1, key);
+       scan = heap_beginscan(relation, 0, false, 1, key);
        for (;;)
        {
                versionTuple = heap_getnext(scan, 0,
index 5d48fbf..a66907d 100644 (file)
@@ -4,7 +4,7 @@
 #    Makefile for parser
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/parser/Makefile,v 1.9 1997/11/14 15:48:19 thomas Exp $
+#    $Header: /cvsroot/pgsql/src/backend/parser/Makefile,v 1.10 1997/11/20 23:22:05 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -23,7 +23,7 @@ endif
 
 
 OBJS= analyze.o catalog_utils.o dbcommands.o gram.o \
-      keywords.o parser.o parse_query.o scan.o scansup.o sysfunc.o
+      keywords.o parser.o parse_query.o scan.o scansup.o
 
 all: SUBSYS.o
 
index 202d5e6..bee5132 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.48 1997/10/30 16:34:22 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.49 1997/11/20 23:22:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,6 +21,7 @@
 #include "nodes/parsenodes.h"
 #include "nodes/relation.h"
 #include "parse.h"                             /* for AND, OR, etc. */
+#include "catalog/pg_aggregate.h"
 #include "catalog/pg_type.h"   /* for INT4OID, etc. */
 #include "catalog/pg_proc.h"
 #include "utils/elog.h"
@@ -66,33 +67,31 @@ static List *expandAllTables(ParseState *pstate);
 static char *figureColname(Node *expr, Node *resval);
 static List *makeTargetNames(ParseState *pstate, List *cols);
 static List *transformTargetList(ParseState *pstate, List *targetlist);
-static TargetEntry *
-make_targetlist_expr(ParseState *pstate,
+static TargetEntry *make_targetlist_expr(ParseState *pstate,
                                         char *colname, Node *expr,
                                         List *arrayRef);
 static bool inWhereClause = false;
 static Node *transformWhereClause(ParseState *pstate, Node *a_expr);
-static List *
-transformGroupClause(ParseState *pstate, List *grouplist,
+static List *transformGroupClause(ParseState *pstate, List *grouplist,
                                         List *targetlist);
-static List *
-transformSortClause(ParseState *pstate,
+static List *transformSortClause(ParseState *pstate,
                                        List *orderlist, List *targetlist,
                                        char *uniqueFlag);
 
 static void parseFromClause(ParseState *pstate, List *frmList);
-static Node *
-ParseFunc(ParseState *pstate, char *funcname,
+static Node *ParseFunc(ParseState *pstate, char *funcname,
                  List *fargs, int *curr_resno);
 static List *setup_tlist(char *attname, Oid relid);
 static List *setup_base_tlist(Oid typeid);
-static void
-make_arguments(int nargs, List *fargs, Oid *input_typeids,
+static void make_arguments(int nargs, List *fargs, Oid *input_typeids,
                           Oid *function_typeids);
 static void AddAggToParseState(ParseState *pstate, Aggreg *aggreg);
 static void finalizeAggregates(ParseState *pstate, Query *qry);
 static void parseCheckAggregates(ParseState *pstate, Query *qry);
 static ParseState *makeParseState(void);
+static Node *parser_typecast(Value *expr, TypeName *typename, int typlen);
+static Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen);
+static Aggreg *ParseAgg(char *aggname, Oid basetype, Node *target);
 
 /*****************************************************************************
  *
@@ -464,9 +463,9 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt)
                 * equal to 2.
                 */
                addRangeTableEntry(pstate, stmt->object->relname, "*CURRENT*",
-                                                  FALSE, FALSE, NULL);
+                                                  FALSE, FALSE);
                addRangeTableEntry(pstate, stmt->object->relname, "*NEW*",
-                                                  FALSE, FALSE, NULL);
+                                                  FALSE, FALSE);
 
                pstate->p_last_resno = 1;
                pstate->p_is_rule = true;               /* for expand all */
@@ -947,8 +946,7 @@ parseFromClause(ParseState *pstate, List *frmList)
                 * eg. select * from foo f where f.x = 1; will generate wrong answer
                 * if we expand * to foo.x.
                 */
-               rte = addRangeTableEntry(pstate, relname, refname, baserel->inh, TRUE,
-                                                                baserel->timeRange);
+               rte = addRangeTableEntry(pstate, relname, refname, baserel->inh, TRUE);
        }
 }
 
@@ -968,7 +966,7 @@ makeRangeTable(ParseState *pstate, char *relname, List *frmList)
                return;
 
        if (refnameRangeTablePosn(pstate->p_rtable, relname) < 1)
-               rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE, NULL);
+               rte = addRangeTableEntry(pstate, relname, relname, FALSE, FALSE);
        else
                rte = refnameRangeTableEntry(pstate->p_rtable, relname);
 
@@ -2321,7 +2319,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
 
                        rte = refnameRangeTableEntry(pstate->p_rtable, refname);
                        if (rte == NULL)
-                               rte = addRangeTableEntry(pstate, refname, refname, FALSE, FALSE, NULL);
+                               rte = addRangeTableEntry(pstate, refname, refname, FALSE, FALSE);
 
                        relname = rte->relname;
                        relid = rte->relid;
@@ -2443,7 +2441,7 @@ ParseFunc(ParseState *pstate, char *funcname, List *fargs, int *curr_resno)
                        rte = refnameRangeTableEntry(pstate->p_rtable, refname);
                        if (rte == NULL)
                                rte = addRangeTableEntry(pstate, refname, refname,
-                                                                                FALSE, FALSE, NULL);
+                                                                                FALSE, FALSE);
                        relname = rte->relname;
 
                        vnum = refnameRangeTablePosn(pstate->p_rtable, rte->refname);
@@ -2862,3 +2860,340 @@ parseCheckAggregates(ParseState *pstate, Query *qry)
  */
        return;
 }
+
+/* not used
+#define    PSIZE(PTR)     (*((int32 *)(PTR) - 1))
+*/
+
+static Node       *
+parser_typecast(Value *expr, TypeName *typename, int typlen)
+{
+       /* check for passing non-ints */
+       Const      *adt;
+       Datum           lcp;
+       Type            tp;
+       char            type_string[NAMEDATALEN];
+       int32           len;
+       char       *cp = NULL;
+       char       *const_string = NULL;
+       bool            string_palloced = false;
+
+       switch (nodeTag(expr))
+       {
+               case T_String:
+                       const_string = DatumGetPointer(expr->val.str);
+                       break;
+               case T_Integer:
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%ld", expr->val.ival);
+                       break;
+               default:
+                       elog(WARN,
+                       "parser_typecast: cannot cast this expression to type \"%s\"",
+                                typename->name);
+       }
+
+       if (typename->arrayBounds != NIL)
+       {
+               sprintf(type_string, "_%s", typename->name);
+               tp = (Type) type(type_string);
+       }
+       else
+       {
+               tp = (Type) type(typename->name);
+       }
+
+       len = tlen(tp);
+
+#if 0                                                  /* fix me */
+       switch (CInteger(lfirst(expr)))
+       {
+               case INT4OID:                   /* int4 */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%d", ((Const *) lnext(expr))->constvalue);
+                       break;
+
+               case NAMEOID:                   /* char16 */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%s", ((Const *) lnext(expr))->constvalue);
+                       break;
+
+               case CHAROID:                   /* char */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%c", ((Const) lnext(expr))->constvalue);
+                       break;
+
+               case FLOAT8OID: /* float8 */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%f", ((Const) lnext(expr))->constvalue);
+                       break;
+
+               case CASHOID:                   /* money */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%d",
+                                       (int) ((Const *) expr)->constvalue);
+                       break;
+
+               case TEXTOID:                   /* text */
+                       const_string = DatumGetPointer(((Const) lnext(expr))->constvalue);
+                       const_string = (char *) textout((struct varlena *) const_string);
+                       break;
+
+               case UNKNOWNOID:                /* unknown */
+                       const_string = DatumGetPointer(((Const) lnext(expr))->constvalue);
+                       const_string = (char *) textout((struct varlena *) const_string);
+                       break;
+
+               default:
+                       elog(WARN, "unknown type %d", CInteger(lfirst(expr)));
+       }
+#endif
+
+       cp = instr2(tp, const_string, typlen);
+
+       if (!tbyvalue(tp))
+       {
+/*
+               if (len >= 0 && len != PSIZE(cp)) {
+                       char *pp;
+                       pp = (char *) palloc(len);
+                       memmove(pp, cp, len);
+                       cp = pp;
+               }
+*/
+               lcp = PointerGetDatum(cp);
+       }
+       else
+       {
+               switch (len)
+               {
+                       case 1:
+                               lcp = Int8GetDatum(cp);
+                               break;
+                       case 2:
+                               lcp = Int16GetDatum(cp);
+                               break;
+                       case 4:
+                               lcp = Int32GetDatum(cp);
+                               break;
+                       default:
+                               lcp = PointerGetDatum(cp);
+                               break;
+               }
+       }
+
+       adt = makeConst(typeid(tp),
+                                       len,
+                                       (Datum) lcp,
+                                       false,
+                                       tbyvalue(tp),
+                                       false,          /* not a set */
+                                       true /* is cast */ );
+
+       if (string_palloced)
+               pfree(const_string);
+
+       return (Node *) adt;
+}
+
+static Node       *
+parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
+{
+       /* check for passing non-ints */
+       Const      *adt;
+       Datum           lcp;
+       int32           len = tlen(tp);
+       char       *cp = NULL;
+
+       char       *const_string = NULL;
+       bool            string_palloced = false;
+
+       Assert(IsA(expr, Const));
+
+       switch (exprType)
+       {
+               case 0:                 /* NULL */
+                       break;
+               case INT4OID:                   /* int4 */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%d",
+                                       (int) ((Const *) expr)->constvalue);
+                       break;
+               case NAMEOID:                   /* char16 */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%s",
+                                       (char *) ((Const *) expr)->constvalue);
+                       break;
+               case CHAROID:                   /* char */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%c",
+                                       (char) ((Const *) expr)->constvalue);
+                       break;
+               case FLOAT4OID: /* float4 */
+                       {
+                               float32         floatVal =
+                               DatumGetFloat32(((Const *) expr)->constvalue);
+
+                               const_string = (char *) palloc(256);
+                               string_palloced = true;
+                               sprintf(const_string, "%f", *floatVal);
+                               break;
+                       }
+               case FLOAT8OID: /* float8 */
+                       {
+                               float64         floatVal =
+                               DatumGetFloat64(((Const *) expr)->constvalue);
+
+                               const_string = (char *) palloc(256);
+                               string_palloced = true;
+                               sprintf(const_string, "%f", *floatVal);
+                               break;
+                       }
+               case CASHOID:                   /* money */
+                       const_string = (char *) palloc(256);
+                       string_palloced = true;
+                       sprintf(const_string, "%ld",
+                                       (long) ((Const *) expr)->constvalue);
+                       break;
+               case TEXTOID:                   /* text */
+                       const_string =
+                               DatumGetPointer(((Const *) expr)->constvalue);
+                       const_string = (char *) textout((struct varlena *) const_string);
+                       break;
+               case UNKNOWNOID:                /* unknown */
+                       const_string =
+                               DatumGetPointer(((Const *) expr)->constvalue);
+                       const_string = (char *) textout((struct varlena *) const_string);
+                       break;
+               default:
+                       elog(WARN, "unknown type %u ", exprType);
+       }
+
+       if (!exprType)
+       {
+               adt = makeConst(typeid(tp),
+                                               (Size) 0,
+                                               (Datum) NULL,
+                                               true,   /* isnull */
+                                               false,  /* was omitted */
+                                               false,  /* not a set */
+                                               true /* is cast */ );
+               return ((Node *) adt);
+       }
+
+       cp = instr2(tp, const_string, typlen);
+
+
+       if (!tbyvalue(tp))
+       {
+/*
+               if (len >= 0 && len != PSIZE(cp)) {
+                       char *pp;
+                       pp = (char *) palloc(len);
+                       memmove(pp, cp, len);
+                       cp = pp;
+               }
+*/
+               lcp = PointerGetDatum(cp);
+       }
+       else
+       {
+               switch (len)
+               {
+                       case 1:
+                               lcp = Int8GetDatum(cp);
+                               break;
+                       case 2:
+                               lcp = Int16GetDatum(cp);
+                               break;
+                       case 4:
+                               lcp = Int32GetDatum(cp);
+                               break;
+                       default:
+                               lcp = PointerGetDatum(cp);
+                               break;
+               }
+       }
+
+       adt = makeConst(typeid(tp),
+                                       (Size) len,
+                                       (Datum) lcp,
+                                       false,
+                                       false,          /* was omitted */
+                                       false,          /* not a set */
+                                       true /* is cast */ );
+
+       /*
+        * printf("adt %s : %u %d %d\n",CString(expr),typeid(tp) , len,cp);
+        */
+       if (string_palloced)
+               pfree(const_string);
+
+       return ((Node *) adt);
+}
+
+static Aggreg     *
+ParseAgg(char *aggname, Oid basetype, Node *target)
+{
+       Oid                     fintype;
+       Oid                     vartype;
+       Oid                     xfn1;
+       Form_pg_aggregate aggform;
+       Aggreg     *aggreg;
+       HeapTuple       theAggTuple;
+
+       theAggTuple = SearchSysCacheTuple(AGGNAME, PointerGetDatum(aggname),
+                                                                         ObjectIdGetDatum(basetype),
+                                                                         0, 0);
+       if (!HeapTupleIsValid(theAggTuple))
+       {
+               elog(WARN, "aggregate %s does not exist", aggname);
+       }
+
+       aggform = (Form_pg_aggregate) GETSTRUCT(theAggTuple);
+       fintype = aggform->aggfinaltype;
+       xfn1 = aggform->aggtransfn1;
+
+       if (nodeTag(target) != T_Var && nodeTag(target) != T_Expr)
+               elog(WARN, "parser: aggregate can only be applied on an attribute or expression");
+
+       /* only aggregates with transfn1 need a base type */
+       if (OidIsValid(xfn1))
+       {
+               basetype = aggform->aggbasetype;
+               if (nodeTag(target) == T_Var)
+                       vartype = ((Var *) target)->vartype;
+               else
+                       vartype = ((Expr *) target)->typeOid;
+
+               if (basetype != vartype)
+               {
+                       Type            tp1,
+                                               tp2;
+
+                       tp1 = get_id_type(basetype);
+                       tp2 = get_id_type(vartype);
+                       elog(NOTICE, "Aggregate type mismatch:");
+                       elog(WARN, "%s works on %s, not %s", aggname,
+                                tname(tp1), tname(tp2));
+               }
+       }
+
+       aggreg = makeNode(Aggreg);
+       aggreg->aggname = pstrdup(aggname);
+       aggreg->basetype = aggform->aggbasetype;
+       aggreg->aggtype = fintype;
+
+       aggreg->target = target;
+
+       return aggreg;
+}
index e378459..b119c7d 100644 (file)
@@ -6,7 +6,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.29 1997/11/02 15:25:19 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/catalog_utils.c,v 1.30 1997/11/20 23:22:14 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -347,7 +347,7 @@ binary_oper_get_candidates(char *opname,
        pg_operator_desc = heap_openr(OperatorRelationName);
        pg_operator_scan = heap_beginscan(pg_operator_desc,
                                                                          0,
-                                                                         SelfTimeQual,
+                                                                         true,
                                                                          nkeys,
                                                                          opKey);
 
@@ -642,7 +642,7 @@ unary_oper_get_candidates(char *op,
        pg_operator_desc = heap_openr(OperatorRelationName);
        pg_operator_scan = heap_beginscan(pg_operator_desc,
                                                                          0,
-                                                                         SelfTimeQual,
+                                                                         true,
                                                                          2,
                                                                          opKey);
 
@@ -1004,7 +1004,7 @@ func_get_candidates(char *funcname, int nargs)
                        ItemPointer iptr;
 
                        iptr = &indexRes->heap_iptr;
-                       tuple = heap_fetch(heapRelation, NowTimeQual, iptr, &buffer);
+                       tuple = heap_fetch(heapRelation, false, iptr, &buffer);
                        pfree(indexRes);
                        if (HeapTupleIsValid(tuple))
                        {
@@ -1352,7 +1352,7 @@ findsupers(Oid relid, Oid **supervec)
                                                           ObjectIdEqualRegProcedure,
                                                           ObjectIdGetDatum(relid));
 
-               inhscan = heap_beginscan(inhrel, 0, NowTimeQual, 1, &skey);
+               inhscan = heap_beginscan(inhrel, 0, false, 1, &skey);
 
                while (HeapTupleIsValid(inhtup = heap_getnext(inhscan, 0, &buf)))
                {
index d3f3f23..ab70441 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/dbcommands.c,v 1.11 1997/11/10 15:17:44 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/dbcommands.c,v 1.12 1997/11/20 23:22:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -159,7 +159,7 @@ get_pg_dbtup(char *command, char *dbname, Relation dbrel)
        ScanKeyEntryInitialize(&scanKey, 0, Anum_pg_database_datname,
                                                   NameEqualRegProcedure, NameGetDatum(dbname));
 
-       scan = heap_beginscan(dbrel, 0, NowTimeQual, 1, &scanKey);
+       scan = heap_beginscan(dbrel, 0, false, 1, &scanKey);
        if (!HeapScanIsValid(scan))
                elog(WARN, "%s: cannot begin scan of pg_database.", command);
 
index 333a42f..915fca6 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.68 1997/11/17 16:37:24 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.69 1997/11/20 23:22:19 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -95,7 +95,6 @@ static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr);
        IndexElem                       *ielem;
        RangeVar                        *range;
        RelExpr                         *relexp;
-       TimeRange                       *trange;
        A_Indices                       *aind;
        ResTarget                       *target;
        ParamNo                         *paramno;
@@ -134,8 +133,7 @@ static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr);
 
 %type <str>            opt_id, opt_portal_name,
                before_clause, after_clause, all_Op, MathOp, opt_name, opt_unique,
-               result, OptUseOp, opt_class, opt_range_start, opt_range_end,
-               SpecialRuleRelation
+               result, OptUseOp, opt_class, SpecialRuleRelation
 
 %type <str>            privileges, operation_commalist, grantee
 %type <chr>            operation, TriggerOneEvent
@@ -190,7 +188,6 @@ static Node *makeIndexable(char *opname, Node *lexpr, Node *rexpr);
 %type <ielem>  index_elem, func_index
 %type <range>  from_val
 %type <relexp> relation_expr
-%type <trange> time_range
 %type <target> res_target_el, res_target_el2
 %type <paramno> ParamNo
 
@@ -2353,7 +2350,6 @@ relation_expr:    relation_name
                                        $$ = makeNode(RelExpr);
                                        $$->relname = $1;
                                        $$->inh = FALSE;
-                                       $$->timeRange = NULL;
                                }
                | relation_name '*'                               %prec '='
                                {
@@ -2361,44 +2357,7 @@ relation_expr:   relation_name
                                        $$ = makeNode(RelExpr);
                                        $$->relname = $1;
                                        $$->inh = TRUE;
-                                       $$->timeRange = NULL;
                                }
-               | relation_name time_range
-                               {
-                                       /* time-qualified query */
-                                       $$ = makeNode(RelExpr);
-                                       $$->relname = $1;
-                                       $$->inh = FALSE;
-                                       $$->timeRange = $2;
-                               }
-               ;
-
-/* Time travel
- * Range specification clause.
- */
-time_range:  '[' opt_range_start ',' opt_range_end ']'
-                               {
-                                       $$ = makeNode(TimeRange);
-                                       $$->startDate = $2;
-                                       $$->endDate = $4;
-                                       elog (WARN, "time travel is no longer available");
-                               }
-               | '[' date ']'
-                               {
-                                       $$ = makeNode(TimeRange);
-                                       $$->startDate = $2;
-                                       $$->endDate = NULL;
-                                       elog (WARN, "time travel is no longer available");
-                               }
-               ;
-
-opt_range_start:  date
-               | /*EMPTY*/                                                             { $$ = "epoch"; }
-               ;
-
-opt_range_end: date
-               | /*EMPTY*/                                                             { $$ = "now"; }
-               ;
 
 opt_array_bounds:  '[' ']' nest_array_bounds
                                {  $$ = lcons(makeInteger(-1), $3); }
index 70f9763..f23e0cf 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.22 1997/11/02 15:25:30 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/Attic/parse_query.c,v 1.23 1997/11/20 23:22:22 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -127,8 +127,8 @@ RangeTblEntry *
 addRangeTableEntry(ParseState *pstate,
                                   char *relname,
                                   char *refname,
-                                  bool inh, bool inFromCl,
-                                  TimeRange *timeRange)
+                                  bool inh,
+                                  bool inFromCl)
 {
        Relation        relation;
        RangeTblEntry *rte = makeNode(RangeTblEntry);
@@ -154,8 +154,6 @@ addRangeTableEntry(ParseState *pstate,
         */
        rte->inh = inh;
 
-       rte->timeRange = timeRange;
-
        /* RelOID */
        rte->relid = RelationGetRelationId(relation);
 
@@ -194,7 +192,7 @@ expandAll(ParseState *pstate, char *relname, char *refname, int *this_resno)
 
        rte = refnameRangeTableEntry(pstate->p_rtable, refname);
        if (rte == NULL)
-               rte = addRangeTableEntry(pstate, relname, refname, FALSE, FALSE, NULL);
+               rte = addRangeTableEntry(pstate, relname, refname, FALSE, FALSE);
 
        rdesc = heap_open(rte->relid);
 
@@ -475,7 +473,7 @@ make_var(ParseState *pstate, char *refname, char *attrname, Oid *type_id)
 
        rte = refnameRangeTableEntry(pstate->p_rtable, refname);
        if (rte == NULL)
-               rte = addRangeTableEntry(pstate, refname, refname, FALSE, FALSE, NULL);
+               rte = addRangeTableEntry(pstate, refname, refname, FALSE, FALSE);
 
        vnum = refnameRangeTablePosn(pstate->p_rtable, refname);
 
index a70c90e..d658c30 100644 (file)
@@ -6,45 +6,20 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.27 1997/11/17 16:59:08 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/parser.c,v 1.28 1997/11/20 23:22:24 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include <string.h>
 #include <stdio.h>
-#include <pwd.h>
-#include <sys/param.h>                 /* for MAXPATHLEN */
 
 #include "postgres.h"
-#include "parser/catalog_utils.h"
 #include "parser/gramparse.h"
 #include "parser/parse_query.h"
-#include "nodes/pg_list.h"
-#include "nodes/execnodes.h"
-#include "nodes/makefuncs.h"
-#include "nodes/primnodes.h"
-#include "nodes/plannodes.h"
-#include "nodes/relation.h"
-#include "utils/builtins.h"
-#include "utils/exc.h"
-#include "utils/excid.h"
-#include "utils/lsyscache.h"
 #include "utils/palloc.h"
-#include "utils/syscache.h"
-#include "catalog/pg_aggregate.h"
-#include "catalog/pg_type.h"
-#include "access/heapam.h"
-#include "optimizer/clauses.h"
-
-void           init_io();                      /* from scan.l */
-void           parser_init(Oid *typev, int nargs); /* from gram.y */
-int                    yyparse();                      /* from gram.c */
 
 char      *parseString;                /* the char* which holds the string to be
                                                                 * parsed */
-char      *parseCh;                    /* a pointer used during parsing to walk
-                                                                * down ParseString */
-
 List      *parsetree = NIL;
 
 #ifdef SETS_FIXED
@@ -70,9 +45,7 @@ parser(char *str, Oid *typev, int nargs)
 
        init_io();
 
-       /* Set things up to read from the string, if there is one */
-       parseString = (char *) palloc(strlen(str) + 1);
-       memmove(parseString, str, strlen(str) + 1);
+       parseString = pstrdup(str);
 
        parser_init(typev, nargs);
        yyresult = yyparse();
@@ -83,10 +56,8 @@ parser(char *str, Oid *typev, int nargs)
 
        clearerr(stdin);
 
-       if (yyresult)
-       {                                                       /* error */
+       if (yyresult)           /* error */
                return ((QueryTreeList *) NULL);
-       }
 
        queryList = parse_analyze(parsetree);
 
@@ -205,339 +176,3 @@ define_sets(Node *clause)
 
 #endif
 
-/* not used
-#define    PSIZE(PTR)     (*((int32 *)(PTR) - 1))
-*/
-
-Node      *
-parser_typecast(Value *expr, TypeName *typename, int typlen)
-{
-       /* check for passing non-ints */
-       Const      *adt;
-       Datum           lcp;
-       Type            tp;
-       char            type_string[NAMEDATALEN];
-       int32           len;
-       char       *cp = NULL;
-       char       *const_string = NULL;
-       bool            string_palloced = false;
-
-       switch (nodeTag(expr))
-       {
-               case T_String:
-                       const_string = DatumGetPointer(expr->val.str);
-                       break;
-               case T_Integer:
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%ld", expr->val.ival);
-                       break;
-               default:
-                       elog(WARN,
-                       "parser_typecast: cannot cast this expression to type \"%s\"",
-                                typename->name);
-       }
-
-       if (typename->arrayBounds != NIL)
-       {
-               sprintf(type_string, "_%s", typename->name);
-               tp = (Type) type(type_string);
-       }
-       else
-       {
-               tp = (Type) type(typename->name);
-       }
-
-       len = tlen(tp);
-
-#if 0                                                  /* fix me */
-       switch (CInteger(lfirst(expr)))
-       {
-               case INT4OID:                   /* int4 */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%d", ((Const *) lnext(expr))->constvalue);
-                       break;
-
-               case NAMEOID:                   /* char16 */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%s", ((Const *) lnext(expr))->constvalue);
-                       break;
-
-               case CHAROID:                   /* char */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%c", ((Const) lnext(expr))->constvalue);
-                       break;
-
-               case FLOAT8OID: /* float8 */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%f", ((Const) lnext(expr))->constvalue);
-                       break;
-
-               case CASHOID:                   /* money */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%d",
-                                       (int) ((Const *) expr)->constvalue);
-                       break;
-
-               case TEXTOID:                   /* text */
-                       const_string = DatumGetPointer(((Const) lnext(expr))->constvalue);
-                       const_string = (char *) textout((struct varlena *) const_string);
-                       break;
-
-               case UNKNOWNOID:                /* unknown */
-                       const_string = DatumGetPointer(((Const) lnext(expr))->constvalue);
-                       const_string = (char *) textout((struct varlena *) const_string);
-                       break;
-
-               default:
-                       elog(WARN, "unknown type %d", CInteger(lfirst(expr)));
-       }
-#endif
-
-       cp = instr2(tp, const_string, typlen);
-
-       if (!tbyvalue(tp))
-       {
-/*
-               if (len >= 0 && len != PSIZE(cp)) {
-                       char *pp;
-                       pp = (char *) palloc(len);
-                       memmove(pp, cp, len);
-                       cp = pp;
-               }
-*/
-               lcp = PointerGetDatum(cp);
-       }
-       else
-       {
-               switch (len)
-               {
-                       case 1:
-                               lcp = Int8GetDatum(cp);
-                               break;
-                       case 2:
-                               lcp = Int16GetDatum(cp);
-                               break;
-                       case 4:
-                               lcp = Int32GetDatum(cp);
-                               break;
-                       default:
-                               lcp = PointerGetDatum(cp);
-                               break;
-               }
-       }
-
-       adt = makeConst(typeid(tp),
-                                       len,
-                                       (Datum) lcp,
-                                       false,
-                                       tbyvalue(tp),
-                                       false,          /* not a set */
-                                       true /* is cast */ );
-
-       if (string_palloced)
-               pfree(const_string);
-
-       return (Node *) adt;
-}
-
-Node      *
-parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen)
-{
-       /* check for passing non-ints */
-       Const      *adt;
-       Datum           lcp;
-       int32           len = tlen(tp);
-       char       *cp = NULL;
-
-       char       *const_string = NULL;
-       bool            string_palloced = false;
-
-       Assert(IsA(expr, Const));
-
-       switch (exprType)
-       {
-               case 0:                 /* NULL */
-                       break;
-               case INT4OID:                   /* int4 */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%d",
-                                       (int) ((Const *) expr)->constvalue);
-                       break;
-               case NAMEOID:                   /* char16 */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%s",
-                                       (char *) ((Const *) expr)->constvalue);
-                       break;
-               case CHAROID:                   /* char */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%c",
-                                       (char) ((Const *) expr)->constvalue);
-                       break;
-               case FLOAT4OID: /* float4 */
-                       {
-                               float32         floatVal =
-                               DatumGetFloat32(((Const *) expr)->constvalue);
-
-                               const_string = (char *) palloc(256);
-                               string_palloced = true;
-                               sprintf(const_string, "%f", *floatVal);
-                               break;
-                       }
-               case FLOAT8OID: /* float8 */
-                       {
-                               float64         floatVal =
-                               DatumGetFloat64(((Const *) expr)->constvalue);
-
-                               const_string = (char *) palloc(256);
-                               string_palloced = true;
-                               sprintf(const_string, "%f", *floatVal);
-                               break;
-                       }
-               case CASHOID:                   /* money */
-                       const_string = (char *) palloc(256);
-                       string_palloced = true;
-                       sprintf(const_string, "%ld",
-                                       (long) ((Const *) expr)->constvalue);
-                       break;
-               case TEXTOID:                   /* text */
-                       const_string =
-                               DatumGetPointer(((Const *) expr)->constvalue);
-                       const_string = (char *) textout((struct varlena *) const_string);
-                       break;
-               case UNKNOWNOID:                /* unknown */
-                       const_string =
-                               DatumGetPointer(((Const *) expr)->constvalue);
-                       const_string = (char *) textout((struct varlena *) const_string);
-                       break;
-               default:
-                       elog(WARN, "unknown type %u ", exprType);
-       }
-
-       if (!exprType)
-       {
-               adt = makeConst(typeid(tp),
-                                               (Size) 0,
-                                               (Datum) NULL,
-                                               true,   /* isnull */
-                                               false,  /* was omitted */
-                                               false,  /* not a set */
-                                               true /* is cast */ );
-               return ((Node *) adt);
-       }
-
-       cp = instr2(tp, const_string, typlen);
-
-
-       if (!tbyvalue(tp))
-       {
-/*
-               if (len >= 0 && len != PSIZE(cp)) {
-                       char *pp;
-                       pp = (char *) palloc(len);
-                       memmove(pp, cp, len);
-                       cp = pp;
-               }
-*/
-               lcp = PointerGetDatum(cp);
-       }
-       else
-       {
-               switch (len)
-               {
-                       case 1:
-                               lcp = Int8GetDatum(cp);
-                               break;
-                       case 2:
-                               lcp = Int16GetDatum(cp);
-                               break;
-                       case 4:
-                               lcp = Int32GetDatum(cp);
-                               break;
-                       default:
-                               lcp = PointerGetDatum(cp);
-                               break;
-               }
-       }
-
-       adt = makeConst(typeid(tp),
-                                       (Size) len,
-                                       (Datum) lcp,
-                                       false,
-                                       false,          /* was omitted */
-                                       false,          /* not a set */
-                                       true /* is cast */ );
-
-       /*
-        * printf("adt %s : %u %d %d\n",CString(expr),typeid(tp) , len,cp);
-        */
-       if (string_palloced)
-               pfree(const_string);
-
-       return ((Node *) adt);
-}
-
-Aggreg    *
-ParseAgg(char *aggname, Oid basetype, Node *target)
-{
-       Oid                     fintype;
-       Oid                     vartype;
-       Oid                     xfn1;
-       Form_pg_aggregate aggform;
-       Aggreg     *aggreg;
-       HeapTuple       theAggTuple;
-
-       theAggTuple = SearchSysCacheTuple(AGGNAME, PointerGetDatum(aggname),
-                                                                         ObjectIdGetDatum(basetype),
-                                                                         0, 0);
-       if (!HeapTupleIsValid(theAggTuple))
-       {
-               elog(WARN, "aggregate %s does not exist", aggname);
-       }
-
-       aggform = (Form_pg_aggregate) GETSTRUCT(theAggTuple);
-       fintype = aggform->aggfinaltype;
-       xfn1 = aggform->aggtransfn1;
-
-       if (nodeTag(target) != T_Var && nodeTag(target) != T_Expr)
-               elog(WARN, "parser: aggregate can only be applied on an attribute or expression");
-
-       /* only aggregates with transfn1 need a base type */
-       if (OidIsValid(xfn1))
-       {
-               basetype = aggform->aggbasetype;
-               if (nodeTag(target) == T_Var)
-                       vartype = ((Var *) target)->vartype;
-               else
-                       vartype = ((Expr *) target)->typeOid;
-
-               if (basetype != vartype)
-               {
-                       Type            tp1,
-                                               tp2;
-
-                       tp1 = get_id_type(basetype);
-                       tp2 = get_id_type(vartype);
-                       elog(NOTICE, "Aggregate type mismatch:");
-                       elog(WARN, "%s works on %s, not %s", aggname,
-                                tname(tp1), tname(tp2));
-               }
-       }
-
-       aggreg = makeNode(Aggreg);
-       aggreg->aggname = pstrdup(aggname);
-       aggreg->basetype = aggform->aggbasetype;
-       aggreg->aggtype = fintype;
-
-       aggreg->target = target;
-
-       return aggreg;
-}
index 5b85598..daa2faa 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.29 1997/11/17 16:31:39 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.30 1997/11/20 23:22:25 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "parser/gramparse.h"
 #include "parser/keywords.h"
 #include "parser/scansup.h"
-#include "parser/sysfunc.h"
 #include "parse.h"
 #include "utils/builtins.h"
 
 extern char *parseString;
-extern char *parseCh;
+static char *parseCh;
 
 /* some versions of lex define this as a macro */
 #if defined(yywrap)
@@ -127,8 +126,6 @@ number                      [-+.0-9Ee]
 letter                 [\200-\377_A-Za-z]
 letter_or_digit        [\200-\377_A-Za-z0-9]
 
-sysfunc                        SYS_{letter}{letter_or_digit}*
-
 identifier             {letter}{letter_or_digit}*
 
 typecast               "::"
@@ -278,11 +275,6 @@ other                      .
                                }
 
 
-{sysfunc}              {
-                                               yylval.str = pstrdup(SystemFunctionHandler((char *)yytext));
-                                               return (SCONST);
-                               }
-
 {typecast}             { return TYPECAST; }
 
 {self}/-[\.0-9]        {
diff --git a/src/backend/parser/sysfunc.c b/src/backend/parser/sysfunc.c
deleted file mode 100644 (file)
index f65f9b8..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * sysfunc.c--
- *       process system functions and return a string result
- *
- * Notes:
- * 1) I return a string result because most of the functions cannot return any
- *       normal type anyway (e.g. SYS_DATE, SYS_TIME, etc...), and the few that
- *       might (SYS_UID or whatever) can just return it as a string - no problem.
- *       This keeps the function flexible enough to be of good use.
- *
- * Written by Chad Robinson, chadr@brttech.com
- * Last modified: 04/27/1996
- * -------------------------------------------------------------------------
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-#include <config.h>
-#include <postgres.h>
-#include <miscadmin.h>
-#include <parser/sysfunc.h>
-
-/*
- * Can't get much more obvious than this.  Might need to replace localtime()
- * on older systems...
- */
-static char *
-Sysfunc_system_date(void)
-{
-       time_t          cur_time_secs;
-       struct tm  *cur_time_expanded;
-       static char buf[12];            /* Just for safety, y'understand... */
-
-       time(&cur_time_secs);
-       cur_time_expanded = localtime(&cur_time_secs);
-       if (EuroDates == 1)
-               sprintf(buf, "%2.2d-%2.2d-%4.4d", cur_time_expanded->tm_mday,
-               cur_time_expanded->tm_mon + 1, cur_time_expanded->tm_year + 1900);
-       else
-               sprintf(buf, "%2.2d-%2.2d-%4.4d", cur_time_expanded->tm_mon + 1,
-                 cur_time_expanded->tm_mday, cur_time_expanded->tm_year + 1900);
-
-       return &buf[0];
-}
-
-static char *
-Sysfunc_system_time(void)
-{
-       time_t          cur_time_secs;
-       struct tm  *cur_time_expanded;
-       static char buf[10];            /* Just for safety, y'understand... */
-
-       time(&cur_time_secs);
-       cur_time_expanded = localtime(&cur_time_secs);
-       sprintf(buf, "%2.2d:%2.2d:%2.2d", cur_time_expanded->tm_hour,
-                       cur_time_expanded->tm_min, cur_time_expanded->tm_sec);
-
-       return &buf[0];
-}
-
-char      *
-SystemFunctionHandler(char *funct)
-{
-       if (!strcmp(funct, "SYS_DATE"))
-               return Sysfunc_system_date();
-       if (!strcmp(funct, "SYS_TIME"))
-               return Sysfunc_system_time();
-       return "*unknown function*";
-}
-
-#ifdef SYSFUNC_TEST
-/*
- * Chad's rule of coding #4 - never delete a test function, even a stupid
- * one - you always need it 10 minutes after you delete it.
- */
-void
-main(void)
-{
-       printf("Current system date: %s\n", SystemFunctionHandler("SYS_DATE"));
-       return;
-}
-
-#endif
index d14fd8b..a7c3552 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.5 1997/09/12 04:08:06 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteRemove.c,v 1.6 1997/11/20 23:22:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -90,7 +90,7 @@ RemoveRewriteRule(char *ruleName)
        ScanKeyEntryInitialize(&scanKeyData, 0, Anum_pg_rewrite_rulename,
                                                   F_CHAR16EQ, NameGetDatum(ruleName));
        scanDesc = heap_beginscan(RewriteRelation,
-                                                         0, NowTimeQual, 1, &scanKeyData);
+                                                         0, false, 1, &scanKeyData);
 
        tuple = heap_getnext(scanDesc, 0, (Buffer *) NULL);
 
@@ -165,7 +165,7 @@ RelationRemoveRules(Oid relid)
                                                   F_OIDEQ,
                                                   ObjectIdGetDatum(relid));
        scanDesc = heap_beginscan(RewriteRelation,
-                                                         0, NowTimeQual, 1, &scanKeyData);
+                                                         0, false, 1, &scanKeyData);
 
        for (;;)
        {
index e75232d..814f842 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.11 1997/10/25 05:35:55 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteSupport.c,v 1.12 1997/11/20 23:22:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -109,7 +109,7 @@ IsDefinedRewriteRule(char *ruleName)
        ScanKeyEntryInitialize(&scanKey, 0, Anum_pg_rewrite_rulename,
                                           NameEqualRegProcedure, PointerGetDatum(ruleName));
        scanDesc = heap_beginscan(RewriteRelation,
-                                                         0, NowTimeQual, 1, &scanKey);
+                                                         0, false, 1, &scanKey);
 
        tuple = heap_getnext(scanDesc, 0, (Buffer *) NULL);
 
index 7b89ad9..7c3c7c5 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.19 1997/11/02 15:25:40 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.20 1997/11/20 23:22:46 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -628,7 +628,7 @@ inv_fetchtup(LargeObjectDesc *obj_desc, Buffer *bufP)
                         * a time qual in.
                         */
 
-                       htup = heap_fetch(obj_desc->heap_r, NowTimeQual,
+                       htup = heap_fetch(obj_desc->heap_r, false,
                                                          &(res->heap_iptr), bufP);
 
                } while (htup == (HeapTuple) NULL);
@@ -639,7 +639,7 @@ inv_fetchtup(LargeObjectDesc *obj_desc, Buffer *bufP)
        }
        else
        {
-               htup = heap_fetch(obj_desc->heap_r, NowTimeQual,
+               htup = heap_fetch(obj_desc->heap_r, false,
                                                  &(obj_desc->htid), bufP);
        }
 
@@ -1206,7 +1206,7 @@ _inv_getsize(Relation hreln, TupleDesc hdesc, Relation ireln)
                if (buf != InvalidBuffer)
                        ReleaseBuffer(buf);
 
-               htup = heap_fetch(hreln, NowTimeQual, &(res->heap_iptr), &buf);
+               htup = heap_fetch(hreln, false, &(res->heap_iptr), &buf);
 
        } while (!HeapTupleIsValid(htup));
 
index d1525b2..f37c384 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/tcop/Attic/aclchk.c,v 1.17 1997/09/08 21:47:48 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/tcop/Attic/aclchk.c,v 1.18 1997/11/20 23:22:50 momjian Exp $
  *
  * NOTES
  *       See acl.h.
@@ -123,7 +123,7 @@ ChangeAcl(char *relname,
        relkey[0].sk_argument = NameGetDatum(relname);
        hsdp = heap_beginscan(relation,
                                                  0,
-                                                 NowTimeQual,
+                                                 false,
                                                  (unsigned) 1,
                                                  relkey);
        htp = heap_getnext(hsdp, 0, &buffer);
@@ -491,7 +491,7 @@ pg_aclcheck(char *relname, char *usename, AclMode mode)
                                  &relkey[0].sk_func,
                                  &relkey[0].sk_nargs);
                relkey[0].sk_argument = NameGetDatum(relname);
-               hsdp = heap_beginscan(relation, 0, NowTimeQual, 1, relkey);
+               hsdp = heap_beginscan(relation, 0, false, 1, relkey);
                htp = heap_getnext(hsdp, 0, (Buffer *) 0);
                if (HeapTupleIsValid(htp) &&
                        !heap_attisnull(htp, Anum_pg_class_relacl))
index dd11e83..0649265 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.6 1997/09/12 04:08:21 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.7 1997/11/20 23:22:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -72,7 +72,7 @@ int4notin(int16 not_in_arg, char *relation_and_attr)
        /* the last argument should be a ScanKey, not an integer! - jolly */
        /* it looks like the arguments are out of order, too */
        /* but skeyData is never initialized! does this work?? - ay 2/95 */
-       scan_descriptor = heap_beginscan(relation_to_scan, false, NULL, 0,
+       scan_descriptor = heap_beginscan(relation_to_scan, false, false, 0,
                                                                         &skeyData);
 
        retval = true;
index 025597d..bc09018 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.9 1997/11/15 16:32:01 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.10 1997/11/20 23:23:00 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -55,7 +55,7 @@ regprocin(char *proname)
                                                   (RegProcedure) F_CHAR16EQ,
                                                   (Datum) proname);
 
-       procscan = heap_beginscan(proc, 0, NowTimeQual, 1, &key);
+       procscan = heap_beginscan(proc, 0, false, 1, &key);
        if (!HeapScanIsValid(procscan))
        {
                heap_close(proc);
@@ -114,7 +114,7 @@ regprocout(RegProcedure proid)
                                                   (RegProcedure) F_INT4EQ,
                                                   (Datum) proid);
 
-       procscan = heap_beginscan(proc, 0, NowTimeQual, 1, &key);
+       procscan = heap_beginscan(proc, 0, false, 1, &key);
        if (!HeapScanIsValid(procscan))
        {
                heap_close(proc);
@@ -192,7 +192,7 @@ oid8types(Oid (*oidArray)[])
                                                                   (RegProcedure) F_INT4EQ,
                                                                   (Datum) *sp);
                
-                       typescan = heap_beginscan(type, 0, NowTimeQual, 1, &key);
+                       typescan = heap_beginscan(type, 0, false, 1, &key);
                        if (!HeapScanIsValid(typescan))
                        {
                                heap_close(type);
index e58bdf1..c16e2e4 100644 (file)
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.10 1997/09/08 02:31:00 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.11 1997/11/20 23:23:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -350,7 +350,7 @@ gethilokey(Oid relid,
        key[0].sk_argument = ObjectIdGetDatum(relid);
        key[1].sk_argument = Int16GetDatum((int16) attnum);
        key[2].sk_argument = ObjectIdGetDatum(opid);
-       sdesc = heap_beginscan(rdesc, 0, NowTimeQual, 3, key);
+       sdesc = heap_beginscan(rdesc, 0, false, 3, key);
        tuple = heap_getnext(sdesc, 0, (Buffer *) NULL);
        if (!HeapTupleIsValid(tuple))
        {
index 70bfecc..4340baa 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.7 1997/09/08 02:31:01 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.8 1997/11/20 23:23:05 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -121,7 +121,7 @@ SetDefine(char *querystr, char *typename)
                oidKey[0].sk_argument = ObjectIdGetDatum(setoid);
                pg_proc_scan = heap_beginscan(procrel,
                                                                          0,
-                                                                         SelfTimeQual,
+                                                                         true,
                                                                          1,
                                                                          oidKey);
                tup = heap_getnext(pg_proc_scan, 0, &buffer);
index f63f22d..535250e 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.16 1997/09/18 20:22:18 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.17 1997/11/20 23:23:08 momjian Exp $
  *
  * Notes:
  *             XXX This needs to use exception.h to handle recovery when
@@ -973,7 +973,7 @@ SearchSysCache(struct catcache * cache,
                 */
                MemoryContextSwitchTo(oldcxt);
 
-               sd = heap_beginscan(relation, 0, NowTimeQual,
+               sd = heap_beginscan(relation, 0, false,
                                                        cache->cc_nkeys, cache->cc_skey);
 
                /* should this buffer be ReleaseBuffer'd?  --djm 8/20/96 */
index 046cba3..98a2a84 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.28 1997/11/17 16:59:25 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.29 1997/11/20 23:23:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -383,7 +383,7 @@ scan_pg_rel_seq(RelationBuildDescInfo buildinfo)
        if (!IsInitProcessingMode())
                RelationSetLockForRead(pg_class_desc);
        pg_class_scan =
-               heap_beginscan(pg_class_desc, 0, NowTimeQual, 1, &key);
+               heap_beginscan(pg_class_desc, 0, false, 1, &key);
        pg_class_tuple = heap_getnext(pg_class_scan, 0, &buf);
 
        /* ----------------
@@ -555,7 +555,7 @@ build_tupdesc_seq(RelationBuildDescInfo buildinfo,
         */
        pg_attribute_desc = heap_openr(AttributeRelationName);
        pg_attribute_scan =
-               heap_beginscan(pg_attribute_desc, 0, NowTimeQual, 1, &key);
+               heap_beginscan(pg_attribute_desc, 0, false, 1, &key);
 
        /* ----------------
         *      add attribute data to relation->rd_att
@@ -726,7 +726,7 @@ RelationBuildRuleLock(Relation relation)
         */
        pg_rewrite_desc = heap_openr(RewriteRelationName);
        pg_rewrite_scan =
-               heap_beginscan(pg_rewrite_desc, 0, NowTimeQual, 1, &key);
+               heap_beginscan(pg_rewrite_desc, 0, false, 1, &key);
        pg_rewrite_tupdesc =
                RelationGetTupleDescriptor(pg_rewrite_desc);
 
@@ -1728,7 +1728,7 @@ AttrDefaultFetch(Relation relation)
                        break;
 
                iptr = &indexRes->heap_iptr;
-               tuple = heap_fetch(adrel, NowTimeQual, iptr, &buffer);
+               tuple = heap_fetch(adrel, false, iptr, &buffer);
                pfree(indexRes);
                if (!HeapTupleIsValid(tuple))
                        continue;
@@ -1817,7 +1817,7 @@ RelCheckFetch(Relation relation)
                        break;
 
                iptr = &indexRes->heap_iptr;
-               tuple = heap_fetch(rcrel, NowTimeQual, iptr, &buffer);
+               tuple = heap_fetch(rcrel, false, iptr, &buffer);
                pfree(indexRes);
                if (!HeapTupleIsValid(tuple))
                        continue;
index 461ec04..11c4c99 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.2 1997/11/10 15:14:34 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.3 1997/11/20 23:23:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -59,7 +59,7 @@ GetDatabaseInfo(char *name, Oid *owner, char *path)
        ScanKeyEntryInitialize(&scanKey, 0, Anum_pg_database_datname,
                NameEqualRegProcedure, NameGetDatum(name));
 
-       scan = heap_beginscan(dbrel, 0, NowTimeQual, 1, &scanKey);
+       scan = heap_beginscan(dbrel, 0, false, 1, &scanKey);
        if (!HeapScanIsValid(scan))
                elog(WARN, "GetDatabaseInfo: cannot begin scan of %s", DatabaseRelationName);
 
index 756d3ef..23a21d4 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.9 1997/11/02 15:26:17 vadim Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.10 1997/11/20 23:23:20 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -25,9 +25,6 @@
 
 #include "utils/tqual.h"
 
-static int4    SelfTimeQualData;
-TimeQual       SelfTimeQual = (TimeQual) &SelfTimeQualData;
-
 extern bool PostgresIsInitialized;
 
 /*
@@ -82,33 +79,23 @@ static bool HeapTupleSatisfiesItself(HeapTuple tuple);
 static bool HeapTupleSatisfiesNow(HeapTuple tuple);
 
 /*
- * HeapTupleSatisfiesTimeQual --
+ * HeapTupleSatisfiesScope --
  *             True iff heap tuple satsifies a time qual.
  *
  * Note:
  *             Assumes heap tuple is valid.
- *             Assumes time qual is valid.
  */
 bool
-HeapTupleSatisfiesTimeQual(HeapTuple tuple, TimeQual qual)
+HeapTupleSatisfiesVisibility(HeapTuple tuple, bool seeself)
 {
 
        if (TransactionIdEquals(tuple->t_xmax, AmiTransactionId))
                return (false);
 
-       if (qual == SelfTimeQual || heapisoverride())
-       {
+       if (seeself == true || heapisoverride())
                return (HeapTupleSatisfiesItself(tuple));
-       }
-
-       if (qual == NowTimeQual)
-       {
+       else
                return (HeapTupleSatisfiesNow(tuple));
-       }
-
-       elog(WARN, "HeapTupleSatisfiesTimeQual: illegal time qual");
-
-       return (false);
 }
 
 /*
index a66fcab..cb9a0a8 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: heapam.h,v 1.21 1997/11/02 15:26:37 vadim Exp $
+ * $Id: heapam.h,v 1.22 1997/11/20 23:23:31 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -123,13 +123,12 @@ extern Relation heap_openr(char *relationName);
 extern void heap_close(Relation relation);
 extern HeapScanDesc
 heap_beginscan(Relation relation, int atend,
-                          TimeQual timeQual, unsigned nkeys, ScanKey key);
+                          bool seeself, unsigned nkeys, ScanKey key);
 extern void heap_rescan(HeapScanDesc sdesc, bool scanFromEnd, ScanKey key);
 extern void heap_endscan(HeapScanDesc sdesc);
 extern HeapTuple heap_getnext(HeapScanDesc scandesc, int backw, Buffer *b);
 extern HeapTuple
-heap_fetch(Relation relation, TimeQual timeQual,
-                  ItemPointer tid, Buffer *b);
+heap_fetch(Relation relation, bool seeself, ItemPointer tid, Buffer *b);
 extern Oid     heap_insert(Relation relation, HeapTuple tup);
 extern int     heap_delete(Relation relation, ItemPointer tid);
 extern int
index 8b2eb5e..78c91dd 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: relscan.h,v 1.8 1997/09/08 21:50:56 momjian Exp $
+ * $Id: relscan.h,v 1.9 1997/11/20 23:23:33 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -33,7 +33,7 @@ typedef struct HeapScanDescData
        ItemPointerData rs_mntid;       /* marked next tid */
        ItemPointerData rs_mcd;         /* marked current delta XXX ??? */
        bool            rs_atend;               /* restart scan at end? */
-       TimeQual        rs_tr;                  /* time qualification */
+       bool            rs_seeself;             /* see self or not */
        uint16          rs_cdelta;              /* current delta in chain */
        uint16          rs_nkeys;               /* number of attributes in keys */
        ScanKey         rs_key;                 /* key descriptors */
index d7707fa..fec8892 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: valid.h,v 1.9 1997/11/02 15:26:46 vadim Exp $
+ * $Id: valid.h,v 1.10 1997/11/20 23:23:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -113,7 +113,7 @@ do \
                                                   relation, \
                                                   buffer, \
                                                   disk_page, \
-                                                  qual, \
+                                                  seeself, \
                                                   nKeys, \
                                                   key, \
                                                   result) \
@@ -144,7 +144,7 @@ do \
                        { \
                                uint16  _infomask = _tuple->t_infomask; \
                                \
-                               _res = HeapTupleSatisfiesTimeQual(_tuple, (qual)); \
+                               _res = HeapTupleSatisfiesVisibility(_tuple, (seeself)); \
                                if (_tuple->t_infomask != _infomask) \
                                        SetBufferCommitInfoNeedsSave(buffer); \
                                if (_res) \
index 08a5f4d..0e20bda 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: executor.h,v 1.14 1997/09/27 14:37:21 momjian Exp $
+ * $Id: executor.h,v 1.15 1997/11/20 23:23:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,8 +28,8 @@
  */
 extern void
 ExecOpenScanR(Oid relOid, int nkeys, ScanKey skeys, bool isindex,
-                         ScanDirection dir, TimeQual timeRange,
-                         Relation *returnRelation, Pointer *returnScanDesc);
+                         ScanDirection dir, Relation *returnRelation,
+                         Pointer *returnScanDesc);
 extern void ExecCloseR(Plan *node);
 extern void ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent);
 extern HeapScanDesc
index 6fd9631..30625da 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parsenodes.h,v 1.30 1997/11/07 06:38:38 thomas Exp $
+ * $Id: parsenodes.h,v 1.31 1997/11/20 23:23:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -786,16 +786,6 @@ typedef struct ParamString
 }                      ParamString;
 
 /*
- * TimeRange - specifies a time range
- */
-typedef struct TimeRange
-{
-       NodeTag         type;
-       char       *startDate;
-       char       *endDate;            /* snapshot if NULL */
-}                      TimeRange;
-
-/*
  * RelExpr - relation expressions
  */
 typedef struct RelExpr
@@ -803,7 +793,6 @@ typedef struct RelExpr
        NodeTag         type;
        char       *relname;            /* the relation name */
        bool            inh;                    /* inheritance query */
-       TimeRange  *timeRange;          /* the time range */
 }                      RelExpr;
 
 /*
@@ -887,14 +876,12 @@ typedef struct RangeTblEntry
 {
        NodeTag         type;
        char       *relname;            /* real name of the relation */
-       TimeRange  *timeRange;          /* time range */
        char       *refname;            /* the reference name (specified in the
                                                                 * from clause) */
        Oid                     relid;
        bool            inh;                    /* inheritance? */
        bool            archive;                /* filled in by plan_archive */
        bool            inFromCl;               /* comes from From Clause */
-       TimeQual        timeQual;               /* filled in by pg_plan */
 }                      RangeTblEntry;
 
 /*
index 69db9b6..ca42b88 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: prep.h,v 1.5 1997/09/08 21:53:30 momjian Exp $
+ * $Id: prep.h,v 1.6 1997/11/20 23:23:48 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include <nodes/parsenodes.h>
 
 /*
- * prototypes for archive.h
- */
-extern void plan_archive(List *rt);
-extern List *find_archive_rels(Oid relid);
-
-/*
  * prototypes for prepqual.h
  */
 extern List *
index fbc06f2..0a7d534 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: parse_query.h,v 1.13 1997/11/02 15:27:08 vadim Exp $
+ * $Id: parse_query.h,v 1.14 1997/11/20 23:23:53 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,8 +29,7 @@ extern int    refnameRangeTablePosn(List *rtable, char *refname);
 extern RangeTblEntry *
 addRangeTableEntry(ParseState *pstate,
                                   char *relname, char *refname,
-                                  bool inh, bool inFromCl,
-                                  TimeRange *timeRange);
+                                  bool inh, bool inFromCl);
 extern List *
 expandAll(ParseState *pstate, char *relname, char *refname,
                  int *this_resno);
@@ -49,13 +48,9 @@ extern Const *make_const(Value *value);
 extern void param_type_init(Oid *typev, int nargs);
 extern Oid     param_type(int t);
 
-/* parser.c (was ylib.c) */
 extern QueryTreeList *parser(char *str, Oid *typev, int nargs);
-extern Node *parser_typecast(Value *expr, TypeName *typename, int typlen);
-extern Node *parser_typecast2(Node *expr, Oid exprType, Type tp, int typlen);
-extern Aggreg *ParseAgg(char *aggname, Oid basetype, Node *target);
-extern void
-handleTargetColname(ParseState *pstate, char **resname,
+
+extern void handleTargetColname(ParseState *pstate, char **resname,
                                        char *refname, char *colname);
 
 /*
index 6ba643c..e69de29 100644 (file)
@@ -1,9 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * sysfunc.h--
- *       support for system functions
- *
- * -------------------------------------------------------------------------
- */
-
-extern char *SystemFunctionHandler(char *funct);
index e07750b..6ee27af 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: tqual.h,v 1.10 1997/11/02 15:27:14 vadim Exp $
+ * $Id: tqual.h,v 1.11 1997/11/20 23:24:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include <access/htup.h>
 
-typedef Pointer TimeQual;
-
-/* Tuples valid as of StartTransactionCommand */
-#define NowTimeQual            ((TimeQual) NULL)
-
 /* As above, plus updates in this command */
-extern TimeQual SelfTimeQual;
 
 extern void setheapoverride(bool on);
 extern bool heapisoverride(void);
 
-extern bool HeapTupleSatisfiesTimeQual(HeapTuple tuple, TimeQual qual);
+extern bool HeapTupleSatisfiesVisibility(HeapTuple tuple, bool seeself);
 
 
 #endif                                                 /* TQUAL_H */