diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c index 8debd9c5c7..8c9635ea43 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 7522781ded..30d3e57faf 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 $ * *------------------------------------------------------------------------- */ @@ -108,24 +108,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 e8ef33d8e6..c7e412ced9 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 @@ -258,21 +258,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. */ @@ -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 6b62064de9..aa39f6b2ce 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 ab05372a91..2fd639aaf4 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 @@ -217,24 +217,6 @@ _readResult() return (local_node); } -/* ---------------- - * _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 * @@ -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 2c8900f64c..521dcd5f41 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 883b5601b6..a22c7e6ffc 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 ceddbbe2d6..e60e576b08 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 b8313f56cb..ae65df8bf4 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 @@ -607,27 +571,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 88afe40120..882d9eabed 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 77447935b8..63447c9369 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; * @@ -100,12 +99,6 @@ typedef struct Plan when passed around generically in the executor */ -/* ---------------- - * 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 90d5a632c4..e2683fc61f 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 6ef82dfdeb..5040a32b85 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); /*