OSDN Git Service

Remove Existential, and ifdef out generate_fjoin. Neither did anything.
authorBruce Momjian <bruce@momjian.us>
Thu, 18 Dec 1997 12:54:45 +0000 (12:54 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 18 Dec 1997 12:54:45 +0000 (12:54 +0000)
13 files changed:
src/backend/executor/execTuples.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/print.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/planmain.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/prep/prepqual.c
src/include/nodes/nodes.h
src/include/nodes/plannodes.h
src/include/optimizer/planmain.h
src/include/optimizer/prep.h

index 8debd9c..8c9635e 100644 (file)
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/execTuples.c,v 1.12 1997/11/26 01:10:54 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/execTuples.c,v 1.13 1997/12/18 12:53:42 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -888,8 +888,6 @@ NodeGetResultTupleSlot(Plan *node)
  *             the node's inner or outer subplan easily without having
  *             to inspect the subplan.. -cim 10/16/89
  *
- *             Assume that for existential nodes, we get the targetlist out
- *             of the right node's targetlist
  * ----------------------------------------------------------------
  */
 
index 7522781..30d3e57 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.19 1997/12/18 05:58:40 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.20 1997/12/18 12:53:48 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -109,24 +109,6 @@ _copyPlan(Plan *from)
 
 
 /* ----------------
- *             _copyExistential
- * ----------------
- */
-static Existential *
-_copyExistential(Existential *from)
-{
-       Existential *newnode = makeNode(Existential);
-
-       /* ----------------
-        *      copy node superclass fields
-        * ----------------
-        */
-       CopyPlanFields(from, newnode);
-
-       return newnode;
-}
-
-/* ----------------
  *             _copyResult
  * ----------------
  */
@@ -1623,9 +1605,6 @@ copyObject(void *from)
                case T_Plan:
                        retval = _copyPlan(from);
                        break;
-               case T_Existential:
-                       retval = _copyExistential(from);
-                       break;
                case T_Result:
                        retval = _copyResult(from);
                        break;
index e8ef33d..c7e412c 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.11 1997/12/04 23:20:32 thomas Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.12 1997/12/18 12:53:51 momjian Exp $
  *
  * NOTES
  *       Every (plan) node in POSTGRES has an associated "out" routine which
@@ -259,21 +259,6 @@ _outResult(StringInfo str, Result *node)
 }
 
 /*
- *     Existential is a subclass of Plan.
- */
-static void
-_outExistential(StringInfo str, Existential *node)
-{
-       char            buf[500];
-
-       sprintf(buf, "EXISTENTIAL");
-       appendStringInfo(str, buf);
-       _outPlanInfo(str, (Plan *) node);
-
-
-}
-
-/*
  *     Append is a subclass of Plan.
  */
 static void
@@ -1641,9 +1626,6 @@ _outNode(StringInfo str, void *obj)
                        case T_Result:
                                _outResult(str, obj);
                                break;
-                       case T_Existential:
-                               _outExistential(str, obj);
-                               break;
                        case T_Append:
                                _outAppend(str, obj);
                                break;
index 6b62064..aa39f6b 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.11 1997/11/25 21:59:44 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.12 1997/12/18 12:53:56 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -304,9 +304,6 @@ plannode_type(Plan *p)
                        case T_Plan:
                        return "PLAN";
                        break;
-               case T_Existential:
-                       return "EXISTENTIAL";
-                       break;
                case T_Result:
                        return "RESULT";
                        break;
index ab05372..2fd639a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.10 1997/10/25 01:09:30 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.11 1997/12/18 12:53:59 momjian Exp $
  *
  * NOTES
  *       Most of the read functions for plan nodes are tested. (In fact, they
@@ -218,24 +218,6 @@ _readResult()
 }
 
 /* ----------------
- *             _readExistential
- *
- *             Existential nodes are only used by the planner.
- * ----------------
- */
-static Existential *
-_readExistential()
-{
-       Existential *local_node;
-
-       local_node = makeNode(Existential);
-
-       _getPlan((Plan *) local_node);
-
-       return (local_node);
-}
-
-/* ----------------
  *             _readAppend
  *
  *     Append is a subclass of Plan.
@@ -1884,10 +1866,6 @@ parsePlanString(void)
        {
                return_value = _readResult();
        }
-       else if (!strncmp(token, "EXISTENTIAL", 11))
-       {
-               return_value = _readExistential();
-       }
        else if (!strncmp(token, "APPEND", 6))
        {
                return_value = _readAppend();
index 2c8900f..521dcd5 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.19 1997/12/18 12:30:43 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.20 1997/12/18 12:54:04 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1175,10 +1175,10 @@ make_unique(List *tlist, Plan *lefttree, char *uniqueAttr)
        return (node);
 }
 
+#ifdef NOT_USED
 List      *
 generate_fjoin(List *tlist)
 {
-#if 0
        List            tlistP;
        List            newTlist = NIL;
        List            fjoinList = NIL;
@@ -1227,6 +1227,7 @@ generate_fjoin(List *tlist)
                newTlist = lappend(newTlist, tempList);
        }
        return newTlist;
-#endif
        return tlist;                           /* do nothing for now - ay 10/94 */
 }
+#endif
+
index 883b560..a22c7e6 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.10 1997/12/18 12:30:44 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.11 1997/12/18 12:54:09 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -259,7 +259,9 @@ query_planner(Query *root,
         * Destructively modify the query plan's targetlist to add fjoin lists
         * to flatten functions that return sets of base types
         */
+#ifdef NOT_USED
        subplan->targetlist = generate_fjoin(subplan->targetlist);
+#endif
 
        return (subplan);
 }
@@ -360,7 +362,9 @@ make_result(List *tlist,
        Result     *node = makeNode(Result);
        Plan       *plan = &node->plan;
 
+#ifdef NOT_USED
        tlist = generate_fjoin(tlist);
+#endif
     plan->cost = (subplan ? subplan->cost : 0);
        plan->state = (EState *) NULL;
        plan->targetlist = tlist;
index ceddbbe..e60e576 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.11 1997/11/25 21:59:59 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.12 1997/12/18 12:54:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -48,7 +48,6 @@
 
 static Plan *make_sortplan(List *tlist, List *sortcls, Plan *plannode);
 static Plan *init_query_planner(Query *parse);
-static Existential *make_existential(Plan *left, Plan *right);
 
 /*****************************************************************************
  *
@@ -184,8 +183,7 @@ make_sortplan(List *tlist, List *sortcls, Plan *plannode)
 
 /*
  * init-query-planner--
- *       Deals with all non-union preprocessing, including existential
- *       qualifications and CNFifying the qualifications.
+ *       Deals with all non-union preprocessing,and CNFifying the qualifications.
  *
  * Returns a query plan.
  * MODIFIES: tlist,qual
@@ -195,8 +193,6 @@ static Plan *
 init_query_planner(Query *root)
 {
        List       *primary_qual;
-       List       *existential_qual;
-       Existential *exist_plan;
        List       *tlist = root->targetList;
 
        tlist = preprocess_targetlist(tlist,
@@ -204,51 +200,12 @@ init_query_planner(Query *root)
                                                                  root->resultRelation,
                                                                  root->rtable);
 
-       primary_qual =
-               preprocess_qualification((Expr *) root->qual,
-                                                                tlist,
-                                                                &existential_qual);
+       primary_qual = cnfify((Expr *) root->qual, true);
 
-       if (existential_qual == NULL)
-       {
-               return (query_planner(root,
-                                                         root->commandType,
-                                                         tlist,
-                                                         primary_qual));
-       }
-       else
-       {
-               int                     temp = root->commandType;
-               Plan       *existential_plan;
-
-               root->commandType = CMD_SELECT;
-               existential_plan = query_planner(root,
-                                                                                temp,
-                                                                                NIL,
-                                                                                existential_qual);
-
-               exist_plan = make_existential(existential_plan,
-                                                                         query_planner(root,
-                                                                                                       root->commandType,
-                                                                                                       tlist,
-                                                                                                       primary_qual));
-               return ((Plan *) exist_plan);
-       }
-}
-
-/*
- * make_existential--
- *       Instantiates an existential plan node and fills in
- *       the left and right subtree slots.
- */
-static Existential *
-make_existential(Plan *left, Plan *right)
-{
-       Existential *node = makeNode(Existential);
-
-       node->lefttree = left;
-       node->righttree = left;
-       return (node);
+       return (query_planner(root,
+                                                 root->commandType,
+                                                 tlist,
+                                                 primary_qual));
 }
 
 /*
index b8313f5..ae65df8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepqual.c,v 1.6 1997/09/08 21:45:31 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/prep/prepqual.c,v 1.7 1997/12/18 12:54:15 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -36,42 +36,6 @@ static List *qualcleanup(Expr *qual);
 static List *remove_ands(Expr *qual);
 static List *remove_duplicates(List *list);
 
-/*
- * preprocess-qualification--
- *       Driver routine for modifying the parse tree qualification.
- *
- * Returns the new base qualification and the existential qualification
- * in existentialQualPtr.
- *
- *     XXX right now, update_clauses() does nothing so
- *             preprocess-qualification simply converts the qual in conjunctive
- *             normal form  (see cnfify() below )
- */
-List      *
-preprocess_qualification(Expr *qual, List *tlist, List **existentialQualPtr)
-{
-       List       *cnf_qual = cnfify(qual, true);
-
-/*
-       List *existential_qual =
-               update_clauses(intCons(_query_result_relation_,
-                                                               update_relations(tlist)),
-                                          cnf_qual,
-                                          _query_command_type_);
-       if (existential_qual) {
-               *existentialQualPtr = existential_qual;
-               return set_difference(cnf_qual, existential_qual);
-       } else {
-               *existentialQualPtr = NIL;
-               return cnf_qual;
-       }
-*/
-       /* update_clauses() is not working right now */
-       *existentialQualPtr = NIL;
-       return cnf_qual;
-
-}
-
 /*****************************************************************************
  *
  *             CNF CONVERSION ROUTINES
@@ -609,27 +573,6 @@ remove_ands(Expr *qual)
 
 /*****************************************************************************
  *
- *             EXISTENTIAL QUALIFICATIONS
- *
- *****************************************************************************/
-
-/*
- * update-relations--
- *       Returns the range table indices (i.e., varnos) for all relations which
- *       are referenced in the target list.
- *
- */
-#ifdef NOT_USED
-static List *
-update_relations(List *tlist)
-{
-       return (NIL);
-}
-
-#endif
-
-/*****************************************************************************
- *
  *
  *
  *****************************************************************************/
index 88afe40..882d9ea 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: nodes.h,v 1.19 1997/12/04 23:43:59 thomas Exp $
+ * $Id: nodes.h,v 1.20 1997/12/18 12:54:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,7 +29,6 @@ typedef enum NodeTag
         *---------------------
         */
        T_Plan = 10,
-       T_Existential,
        T_Result,
        T_Append,
        T_Scan,
index 7744793..63447c9 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: plannodes.h,v 1.10 1997/09/08 21:52:53 momjian Exp $
+ * $Id: plannodes.h,v 1.11 1997/12/18 12:54:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -23,7 +23,6 @@
  *
  * control nodes
  *
- *             Existential                             ExistentialState                exstate;
  *             Result                                  ResultState                             resstate;
  *             Append                                  AppendState                             unionstate;
  *
@@ -101,12 +100,6 @@ typedef struct Plan
 
 
 /* ----------------
- *             existential node
- * ----------------
- */
-typedef Plan Existential;
-
-/* ----------------
  *      result node -
  *             returns tuples from outer plan that satisfy the qualifications
  * ----------------
index 90d5a63..e2683fc 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: planmain.h,v 1.7 1997/12/18 12:21:02 momjian Exp $
+ * $Id: planmain.h,v 1.8 1997/12/18 12:54:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -37,8 +37,6 @@ extern Agg *make_agg(List *tlist, int nagg, Aggreg **aggs, Plan *lefttree);
 extern Group *make_group(List *tlist, bool tuplePerGroup, int ngrp,
                   AttrNumber *grpColIdx, Sort *lefttree);
 extern Unique *make_unique(List *tlist, Plan *lefttree, char *uniqueAttr);
-extern List *generate_fjoin(List *tlist);
-
 
 /*
  * prototypes for plan/initsplan.c
index 6ef82df..5040a32 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: prep.h,v 1.7 1997/11/21 18:12:33 momjian Exp $
+ * $Id: prep.h,v 1.8 1997/12/18 12:54:45 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,9 +19,6 @@
 /*
  * prototypes for prepqual.h
  */
-extern List *
-preprocess_qualification(Expr *qual, List *tlist,
-                                                List **existentialQualPtr);
 extern List *cnfify(Expr *qual, bool removeAndFlag);
 
 /*