aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/executor/execTuples.c4
-rw-r--r--src/backend/nodes/copyfuncs.c23
-rw-r--r--src/backend/nodes/outfuncs.c20
-rw-r--r--src/backend/nodes/print.c5
-rw-r--r--src/backend/nodes/readfuncs.c24
-rw-r--r--src/backend/optimizer/plan/createplan.c7
-rw-r--r--src/backend/optimizer/plan/planmain.c6
-rw-r--r--src/backend/optimizer/plan/planner.c57
-rw-r--r--src/backend/optimizer/prep/prepqual.c59
-rw-r--r--src/include/nodes/nodes.h3
-rw-r--r--src/include/nodes/plannodes.h9
-rw-r--r--src/include/optimizer/planmain.h4
-rw-r--r--src/include/optimizer/prep.h5
13 files changed, 26 insertions, 200 deletions
diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c
index 8debd9c5c71..8c9635ea438 100644
--- a/src/backend/executor/execTuples.c
+++ b/src/backend/executor/execTuples.c
@@ -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
* ----------------------------------------------------------------
*/
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 7522781ded3..30d3e57fafd 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -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;
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index e8ef33d8e60..c7e412ced9c 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -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;
diff --git a/src/backend/nodes/print.c b/src/backend/nodes/print.c
index 6b62064de9e..aa39f6b2cee 100644
--- a/src/backend/nodes/print.c
+++ b/src/backend/nodes/print.c
@@ -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;
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index ab05372a917..2fd639aaf48 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -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();
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 2c8900f64c8..521dcd5f416 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -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
+
diff --git a/src/backend/optimizer/plan/planmain.c b/src/backend/optimizer/plan/planmain.c
index 883b5601b61..a22c7e6ffc3 100644
--- a/src/backend/optimizer/plan/planmain.c
+++ b/src/backend/optimizer/plan/planmain.c
@@ -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;
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index ceddbbe2d6b..e60e576b08e 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -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));
}
/*
diff --git a/src/backend/optimizer/prep/prepqual.c b/src/backend/optimizer/prep/prepqual.c
index b8313f56cb7..ae65df8bf47 100644
--- a/src/backend/optimizer/prep/prepqual.c
+++ b/src/backend/optimizer/prep/prepqual.c
@@ -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
-
-/*****************************************************************************
- *
*
*
*****************************************************************************/
diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h
index 88afe401203..882d9eabed0 100644
--- a/src/include/nodes/nodes.h
+++ b/src/include/nodes/nodes.h
@@ -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,
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h
index 77447935b80..63447c93692 100644
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -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
* ----------------
diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h
index 90d5a632c40..e2683fc61f7 100644
--- a/src/include/optimizer/planmain.h
+++ b/src/include/optimizer/planmain.h
@@ -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
diff --git a/src/include/optimizer/prep.h b/src/include/optimizer/prep.h
index 6ef82dfdeb4..5040a32b852 100644
--- a/src/include/optimizer/prep.h
+++ b/src/include/optimizer/prep.h
@@ -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);
/*