]> granicus.if.org Git - postgresql/commitdiff
Rename Path.keys to Path.pathkeys. Too many 'keys' used for other things.
authorBruce Momjian <bruce@momjian.us>
Wed, 10 Feb 1999 03:52:54 +0000 (03:52 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 10 Feb 1999 03:52:54 +0000 (03:52 +0000)
22 files changed:
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/freefuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/print.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/geqo/geqo_misc.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/path/hashutils.c
src/backend/optimizer/path/indxpath.c
src/backend/optimizer/path/joinpath.c
src/backend/optimizer/path/joinutils.c
src/backend/optimizer/path/mergeutils.c
src/backend/optimizer/path/orindxpath.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/util/keys.c
src/backend/optimizer/util/pathnode.c
src/include/nodes/print.h
src/include/nodes/relation.h
src/include/optimizer/cost.h
src/include/optimizer/pathnode.h

index 8a0ac031fb7bc12fe7643db93c4197ef5b145163..eee95588b39d41dd9df8fc49d3937da9e9560ba8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.65 1999/02/09 17:02:46 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.66 1999/02/10 03:52:34 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1114,7 +1114,7 @@ CopyPathFields(Path *from, Path *newnode)
        else
                Node_Copy(from, newnode, path_order->ord.merge);
 
-       Node_Copy(from, newnode, keys);
+       Node_Copy(from, newnode, pathkeys);
 
        newnode->outerjoincost = from->outerjoincost;
 
index bbb56fff04e7b705c463cab408a5e2a5fefe7c10..60e2594ecc3a388acc8522b0b3c213712cd1fb63 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.27 1999/02/09 03:51:12 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.28 1999/02/10 03:52:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -366,7 +366,7 @@ _equalPath(Path *a, Path *b)
                if (!equal(a->path_order->ord.merge, b->path_order->ord.merge))
                        return false;
        }
-       if (!equal(a->keys, b->keys))
+       if (!equal(a->pathkeys, b->pathkeys))
                return false;
 
        /*
index a7d3bf6305b0d8ef84144fee82532eb2df397bc6..a7b453c03a100637bd2e6102ef17daaa44d7b163 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.4 1999/02/09 17:02:49 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.5 1999/02/10 03:52:35 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -767,7 +767,7 @@ FreePathFields(Path *node)
        pfree(node->path_order);        /* is it an object, but we don't have
                                                                   separate free for it */
 
-       freeObject(node->keys);
+       freeObject(node->pathkeys);
 
        freeList(node->joinid);
        freeObject(node->loc_restrictinfo);
index 854a2011cb3528e674cdb1684cc318f4808f6b6e..28b13a75b1cdcd4bb6e847aedb43b34dc76b12d6 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- *  $Id: outfuncs.c,v 1.67 1999/02/09 17:02:49 momjian Exp $
+ *  $Id: outfuncs.c,v 1.68 1999/02/10 03:52:35 momjian Exp $
  *
  * NOTES
  *       Every (plan) node in POSTGRES has an associated "out" routine which
@@ -959,10 +959,10 @@ _outPathOrder(StringInfo str, PathOrder *node)
 static void
 _outPath(StringInfo str, Path *node)
 {
-       appendStringInfo(str, " PATH :pathtype %d :cost %f :keys ",
+       appendStringInfo(str, " PATH :pathtype %d :cost %f :pathkeys ",
                        node->pathtype,
                        node->path_cost);
-       _outNode(str, node->keys);
+       _outNode(str, node->pathkeys);
 
        appendStringInfo(str, " :path_order ");
        _outNode(str, node->path_order);
@@ -975,10 +975,10 @@ static void
 _outIndexPath(StringInfo str, IndexPath *node)
 {
        appendStringInfo(str, 
-                       " INDEXPATH :pathtype %d :cost %f :keys ",
+                       " INDEXPATH :pathtype %d :cost %f :pathkeys ",
                        node->path.pathtype,
                        node->path.path_cost);
-       _outNode(str, node->path.keys);
+       _outNode(str, node->path.pathkeys);
 
        appendStringInfo(str, " :path_order ");
        _outNode(str, node->path.path_order);
@@ -997,10 +997,10 @@ static void
 _outJoinPath(StringInfo str, JoinPath *node)
 {
        appendStringInfo(str, 
-                       " JOINPATH :pathtype %d :cost %f :keys ",
+                       " JOINPATH :pathtype %d :cost %f :pathkeys ",
                        node->path.pathtype,
                        node->path.path_cost);
-       _outNode(str, node->path.keys);
+       _outNode(str, node->path.pathkeys);
 
        appendStringInfo(str, " :path_order ");
        _outNode(str, node->path.path_order);
@@ -1028,10 +1028,10 @@ static void
 _outMergePath(StringInfo str, MergePath *node)
 {
        appendStringInfo(str, 
-                       " MERGEPATH :pathtype %d :cost %f :keys ",
+                       " MERGEPATH :pathtype %d :cost %f :pathkeys ",
                        node->jpath.path.pathtype,
                        node->jpath.path.path_cost);
-       _outNode(str, node->jpath.path.keys);
+       _outNode(str, node->jpath.path.pathkeys);
 
        appendStringInfo(str, " :path_order ");
        _outNode(str, node->jpath.path.path_order);
@@ -1068,10 +1068,10 @@ static void
 _outHashPath(StringInfo str, HashPath *node)
 {
        appendStringInfo(str, 
-                       " HASHPATH :pathtype %d :cost %f :keys ",
+                       " HASHPATH :pathtype %d :cost %f :pathkeys ",
                        node->jpath.path.pathtype,
                        node->jpath.path.path_cost);
-       _outNode(str, node->jpath.path.keys);
+       _outNode(str, node->jpath.path.pathkeys);
 
        appendStringInfo(str, " :path_order ");
        _outNode(str, node->jpath.path.path_order);
index 175b4a5fdf46b11e3b2a46d6683d99e51c1df7aa..f5e9eb41138048380ef94e5a5031b7aa2d497447 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.20 1999/02/09 17:02:49 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/print.c,v 1.21 1999/02/10 03:52:36 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -212,16 +212,16 @@ print_expr(Node *expr, List *rtable)
 }
 
 /*
- * print_keys -
- *       temporary here. where is keys list of list??
+ * print_pathkeys -
+ *       temporary here. where is keys list of lists
  */
 void
-print_keys(List *keys, List *rtable)
+print_pathkeys(List *pathkeys, List *rtable)
 {
        List       *k;
 
        printf("(");
-       foreach(k, keys)
+       foreach(k, pathkeys)
        {
                Node       *var = lfirst((List *) lfirst(k));
 
index 02e7547ab1dbdf617ac19705b29dbf654faed01d..1a220c05d65e490bf56b44902b500fe2f2dd707a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.52 1999/02/09 17:02:50 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.53 1999/02/10 03:52:36 momjian Exp $
  *
  * NOTES
  *       Most of the read functions for plan nodes are tested. (In fact, they
@@ -1525,8 +1525,8 @@ _readPath()
        token = lsptok(NULL, &length);          /* get :path_order */
        local_node->path_order = nodeRead(true); /* now read it */
 
-       token = lsptok(NULL, &length);          /* get :keys */
-       local_node->keys = nodeRead(true);      /* now read it */
+       token = lsptok(NULL, &length);          /* get :pathkeys */
+       local_node->pathkeys = nodeRead(true);  /* now read it */
 
        return local_node;
 }
@@ -1557,8 +1557,8 @@ _readIndexPath()
        token = lsptok(NULL, &length);          /* get :path_order */
        local_node->path.path_order = nodeRead(true);           /* now read it */
 
-       token = lsptok(NULL, &length);          /* get :keys */
-       local_node->path.keys = nodeRead(true);         /* now read it */
+       token = lsptok(NULL, &length);          /* get :pathkeys */
+       local_node->path.pathkeys = nodeRead(true);             /* now read it */
 
        token = lsptok(NULL, &length);          /* get :indexid */
        local_node->indexid = toIntList(nodeRead(true));
@@ -1596,8 +1596,8 @@ _readJoinPath()
        token = lsptok(NULL, &length);          /* get :path_order */
        local_node->path.path_order = nodeRead(true);           /* now read it */
 
-       token = lsptok(NULL, &length);          /* get :keys */
-       local_node->path.keys = nodeRead(true);         /* now read it */
+       token = lsptok(NULL, &length);          /* get :pathkeys */
+       local_node->path.pathkeys = nodeRead(true);             /* now read it */
 
        token = lsptok(NULL, &length);          /* get :pathinfo */
        local_node->pathinfo = nodeRead(true);          /* now read it */
@@ -1661,8 +1661,8 @@ _readMergePath()
        token = lsptok(NULL, &length);          /* get :path_order */
        local_node->jpath.path.path_order = nodeRead(true); /* now read it */
 
-       token = lsptok(NULL, &length);          /* get :keys */
-       local_node->jpath.path.keys = nodeRead(true);           /* now read it */
+       token = lsptok(NULL, &length);          /* get :pathkeys */
+       local_node->jpath.path.pathkeys = nodeRead(true);               /* now read it */
 
        token = lsptok(NULL, &length);          /* get :pathinfo */
        local_node->jpath.pathinfo = nodeRead(true);    /* now read it */
@@ -1735,8 +1735,8 @@ _readHashPath()
        token = lsptok(NULL, &length);          /* get :path_order */
        local_node->jpath.path.path_order = nodeRead(true); /* now read it */
 
-       token = lsptok(NULL, &length);          /* get :keys */
-       local_node->jpath.path.keys = nodeRead(true);           /* now read it */
+       token = lsptok(NULL, &length);          /* get :pathkeys */
+       local_node->jpath.path.pathkeys = nodeRead(true);               /* now read it */
 
        token = lsptok(NULL, &length);          /* get :pathinfo */
        local_node->jpath.pathinfo = nodeRead(true);    /* now read it */
index 6a68fe1ddb224dba1d74f8da3c54b0e6b0066734..e05959b8e89d32c5bacf1620701bf71be7029f97 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_misc.c,v 1.12 1999/02/03 20:15:27 momjian Exp $
+ * $Id: geqo_misc.c,v 1.13 1999/02/10 03:52:37 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -240,8 +240,8 @@ geqo_print_path(Query *root, Path *path, int indent)
                        List       *k,
                                           *l;
 
-                       printf(" keys=");
-                       foreach(k, path->keys)
+                       printf(" pathkeys=");
+                       foreach(k, path->pathkeys)
                        {
                                printf("(");
                                foreach(l, lfirst(k))
index ee8b6be27d787bfa85e4a8b8bc6e9b3406449f4f..e681fd87464ace2b5656b9319bb38c6e8df2996f 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.25 1999/02/03 20:15:28 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.26 1999/02/10 03:52:38 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -383,8 +383,8 @@ print_path(Query *root, Path *path, int indent)
                        List       *k,
                                           *l;
 
-                       printf(" keys=");
-                       foreach(k, path->keys)
+                       printf(" pathkeys=");
+                       foreach(k, path->pathkeys)
                        {
                                printf("(");
                                foreach(l, lfirst(k))
index 684a20d4ea24b1a6d5305f94070e8d64a191cbd5..91c32fce5f331b4f669cc5f60772c46b97904b1d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v 1.27 1999/02/09 17:02:52 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/costsize.c,v 1.28 1999/02/10 03:52:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -164,7 +164,7 @@ cost_index(Oid indexid,
  *       2. the cost of reading the sort result into memory (another seqscan)
  *              unless 'noread' is set
  *
- * 'keys' is a list of sort keys
+ * 'pathkeys' is a list of sort keys
  * 'tuples' is the number of tuples in the relation
  * 'width' is the average tuple width in bytes
  * 'noread' is a flag indicating that the sort result can remain on disk
@@ -174,7 +174,7 @@ cost_index(Oid indexid,
  *
  */
 Cost
-cost_sort(List *keys, int tuples, int width, bool noread)
+cost_sort(List *pathkeys, int tuples, int width, bool noread)
 {
        Cost            temp = 0;
        int                     npages = page_size(tuples, width);
@@ -183,7 +183,7 @@ cost_sort(List *keys, int tuples, int width, bool noread)
 
        if (!_enable_sort_)
                temp += _disable_cost_;
-       if (tuples == 0 || keys == NULL)
+       if (tuples == 0 || pathkeys == NULL)
        {
                Assert(temp >= 0);
                return temp;
@@ -194,8 +194,8 @@ cost_sort(List *keys, int tuples, int width, bool noread)
         * could be base_log(pages, NBuffers), but we are only doing 2-way
         * merges
         */
-       temp += _cpu_page_wight_ *
-               numTuples * base_log((double) pages, (double) 2.0);
+       temp += _cpu_page_wight_ * numTuples *
+               base_log((double) pages, (double) 2.0);
 
        if (!noread)
                temp = temp + cost_seqscan(_NONAME_RELATION_ID_, npages, tuples);
index 1eebfa9b75d5d5e46b2660d6098ef8bfedb9755b..4354f881a67c4cdfa1242e5441bc099646af7dbf 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.11 1999/02/04 03:19:08 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.12 1999/02/10 03:52:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -58,21 +58,21 @@ group_clauses_by_hashop(List *restrictinfo_list,
                        Expr       *clause = restrictinfo->clause;
                        Var                *leftop = get_leftop(clause);
                        Var                *rightop = get_rightop(clause);
-                       JoinKey    *keys = (JoinKey *) NULL;
+                       JoinKey    *joinkey = (JoinKey *) NULL;
 
                        xhashinfo = match_hashop_hashinfo(hashjoinop, hashinfo_list);
 
                        if (inner_relid == leftop->varno)
                        {
-                               keys = makeNode(JoinKey);
-                               keys->outer = rightop;
-                               keys->inner = leftop;
+                               joinkey = makeNode(JoinKey);
+                               joinkey->outer = rightop;
+                               joinkey->inner = leftop;
                        }
                        else
                        {
-                               keys = makeNode(JoinKey);
-                               keys->outer = leftop;
-                               keys->inner = rightop;
+                               joinkey = makeNode(JoinKey);
+                               joinkey->outer = leftop;
+                               joinkey->inner = rightop;
                        }
 
                        if (xhashinfo == NULL)
@@ -90,7 +90,7 @@ group_clauses_by_hashop(List *restrictinfo_list,
 
                        xhashinfo->jmethod.clauses = lcons(clause, xhashinfo->jmethod.clauses);
 
-                       xhashinfo->jmethod.jmkeys = lcons(keys, xhashinfo->jmethod.jmkeys);
+                       xhashinfo->jmethod.jmkeys = lcons(joinkey, xhashinfo->jmethod.jmkeys);
                }
        }
        return hashinfo_list;
index 770614eec04d747303a794e176d944f89b7ee1f8..f8590f9473bd771c38ac3bf988e0eaded2a50870 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.40 1999/02/09 03:51:17 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.41 1999/02/10 03:52:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -144,7 +144,7 @@ find_index_paths(Query *root,
                 * restriction clauses, then create pathnodes corresponding to
                 * each group of usable clauses.
                 */
-               scanclausegroups = group_clauses_by_indexkey(rel,
+               scanclausegroups = group_clauses_by_indexkey(rel,
                                                                                                         index,
                                                                                                         index->indexkeys,
                                                                                                         index->classlist,
@@ -1293,7 +1293,7 @@ index_innerjoin(Query *root, RelOptInfo * rel, List *clausegroup_list,
                pathnode->path.path_order = makeNode(PathOrder);
            pathnode->path.path_order->ordtype = SORTOP_ORDER;
            pathnode->path.path_order->ord.sortop = index->ordering;
-           pathnode->path.keys = NIL;  /* not sure about this, bjm 1998/09/21 */
+           pathnode->path.pathkeys = NIL;
 
                pathnode->indexid = index->relids;
                pathnode->indexkeys = index->indexkeys;
index 76b4fd81e8f515cf394484b410d63dab769197e7..c0086fe559efb31b832bee61447fc71f72b85c8b 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.16 1999/02/09 03:51:19 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.17 1999/02/10 03:52:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -341,19 +341,19 @@ match_unsorted_outer(RelOptInfo * joinrel,
 
                if (clauses)
                {
-                       List       *keys = xmergeinfo->jmethod.jmkeys;
+                       List       *jmkeys = xmergeinfo->jmethod.jmkeys;
                        List       *clauses = xmergeinfo->jmethod.clauses;
 
-                       matchedJoinKeys = match_pathkeys_joinkeys(outerpath->keys,
-                                                                               keys,
+                       matchedJoinKeys = match_pathkeys_joinkeys(outerpath->pathkeys,
+                                                                               jmkeys,
                                                                                clauses,
                                                                                OUTER,
                                                                                &matchedJoinClauses);
-                       merge_pathkeys = new_join_pathkeys(outerpath->keys,
+                       merge_pathkeys = new_join_pathkeys(outerpath->pathkeys,
                                                                  joinrel->targetlist, clauses);
                }
                else
-                       merge_pathkeys = outerpath->keys;
+                       merge_pathkeys = outerpath->pathkeys;
 
                if (best_innerjoin &&
                        path_is_cheaper(best_innerjoin, cheapest_inner))
@@ -415,7 +415,7 @@ match_unsorted_outer(RelOptInfo * joinrel,
                                                                                        matchedJoinClauses,
                                                                                        NIL,
                                                                                        varkeys),
-                                         paths);
+                                                                         paths);
                }
                else
                        temp_node = paths;
@@ -484,11 +484,11 @@ match_unsorted_inner(RelOptInfo * joinrel,
 
                if (clauses)
                {
-                       List       *keys = xmergeinfo->jmethod.jmkeys;
+                       List       *jmkeys = xmergeinfo->jmethod.jmkeys;
                        List       *cls = xmergeinfo->jmethod.clauses;
 
-                       matchedJoinKeys = match_pathkeys_joinkeys(innerpath->keys,
-                                                                               keys,
+                       matchedJoinKeys = match_pathkeys_joinkeys(innerpath->pathkeys,
+                                                                               jmkeys,
                                                                                cls,
                                                                                INNER,
                                                                                &matchedJoinClauses);
index 411ab2cbb5e5943b78971b4e6687daf8ced0186c..bdfa430814259245696c1c0a3d49135b10a813f8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.13 1999/02/09 17:02:55 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.14 1999/02/10 03:52:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -44,7 +44,7 @@ static List *new_matching_subkeys(Var *subkey, List *considered_subkeys,
  * match-pathkeys-joinkeys--
  *       Attempts to match the keys of a path against the keys of join clauses.
  *       This is done by looking for a matching join key in 'joinkeys' for
- *       every path key in the list 'pathkeys'. If there is a matching join key
+ *       every path key in the list 'path.keys'. If there is a matching join key
  *       (not necessarily unique) for every path key, then the list of
  *       corresponding join keys and join clauses are returned in the order in
  *       which the keys matched the path keys.
@@ -216,10 +216,10 @@ match_paths_joinkeys(List *joinkeys,
        {
                Path       *path = (Path *) lfirst(i);
 
-               key_match = every_func(joinkeys, path->keys, which_subkey);
+               key_match = every_func(joinkeys, path->pathkeys, which_subkey);
 
                if (equal_path_ordering(ordering, path->path_order) &&
-                       length(joinkeys) == length(path->keys) &&
+                       length(joinkeys) == length(path->pathkeys) &&
                        key_match)
                {
 
@@ -249,7 +249,7 @@ match_paths_joinkeys(List *joinkeys,
  *             in 'joinkeys'
  *
  * Returns a list of pathkeys: ((tlvar1)(tlvar2)...(tlvarN)).
- * [I've no idea why they have to be list of lists. Should be fixed. -ay 12/94]
+ * It is a list of lists because of multi-key indexes.
  */
 List *
 extract_path_keys(List *joinkeys,
index 70c230aef3aa2f08ca2d1cb3c633bd62b3c6d74d..00cc5e2399470a4c65df5eea28424838e181b287 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.15 1999/02/09 03:51:20 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.16 1999/02/10 03:52:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -57,7 +57,7 @@ group_clauses_by_order(List *restrictinfo_list,
                        Expr       *clause = restrictinfo->clause;
                        Var                *leftop = get_leftop(clause);
                        Var                *rightop = get_rightop(clause);
-                       JoinKey    *keys;
+                       JoinKey    *jmkeys;
 
                        path_order = makeNode(PathOrder);
                        path_order->ordtype = MERGE_ORDER;
@@ -65,15 +65,15 @@ group_clauses_by_order(List *restrictinfo_list,
                        xmergeinfo = match_order_mergeinfo(path_order, mergeinfo_list);
                        if (inner_relid == leftop->varno)
                        {
-                               keys = makeNode(JoinKey);
-                               keys->outer = rightop;
-                               keys->inner = leftop;
+                               jmkeys = makeNode(JoinKey);
+                               jmkeys->outer = rightop;
+                               jmkeys->inner = leftop;
                        }
                        else
                        {
-                               keys = makeNode(JoinKey);
-                               keys->outer = leftop;
-                               keys->inner = rightop;
+                               jmkeys = makeNode(JoinKey);
+                               jmkeys->outer = leftop;
+                               jmkeys->inner = rightop;
                        }
 
                        if (xmergeinfo == NULL)
@@ -87,7 +87,7 @@ group_clauses_by_order(List *restrictinfo_list,
 
                        ((JoinMethod *) xmergeinfo)->clauses = lcons(clause,
                                          ((JoinMethod *) xmergeinfo)->clauses);
-                       ((JoinMethod *) xmergeinfo)->jmkeys = lcons(keys,
+                       ((JoinMethod *) xmergeinfo)->jmkeys = lcons(jmkeys,
                                          ((JoinMethod *) xmergeinfo)->jmkeys);
                }
        }
index 1414a3f82376322212dd51497a4a9792bdc21461..af5ca4407b4f1896a433b6d0a9b5c27354bb66a6 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.16 1999/02/09 03:51:20 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.17 1999/02/10 03:52:41 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -112,7 +112,7 @@ create_or_index_paths(Query *root,
                                 *      not in any order, so the sortop is NULL.
                                 */
                            pathnode->path.path_order->ord.sortop = NULL;
-                           pathnode->path.keys = NIL;  /* not sure about this, bjm 1998/09/21 */
+                           pathnode->path.pathkeys = NIL;
 
                                pathnode->indexqual = lcons(clausenode, NIL);
                                pathnode->indexid = indexids;
index 69b7ead092b2e22dff4ee7e60622d0ca91eb4117..fbad2306db79dbe19d644df5de50cfe59d99aab6 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.40 1999/02/09 17:02:55 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.41 1999/02/10 03:52:44 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -60,7 +60,7 @@ static HashJoin *create_hashjoin_node(HashPath *best_path, List *tlist,
                                         List *clauses, Plan *outer_node, List *outer_tlist,
                                         Plan *inner_node, List *inner_tlist);
 static Node *fix_indxqual_references(Node *clause, Path *index_path);
-static Noname *make_noname(List *tlist, List *keys, Oid *operators,
+static Noname *make_noname(List *tlist, List *pathkeys, Oid *operators,
                  Plan *plan_node, int nonametype);
 static IndexScan *make_indexscan(List *qptlist, List *qpqual, Index scanrelid,
                           List *indxid, List *indxqual, List *indxqualorig, Cost cost);
@@ -814,19 +814,19 @@ switch_outer(List *clauses)
 static List *
 set_noname_tlist_operators(List *tlist, List *pathkeys, Oid *operators)
 {
-       Node       *keys = NULL;
+       Node       *pathkey = NULL;
        int                     keyno = 1;
        Resdom     *resdom = (Resdom *) NULL;
        List       *i = NIL;
 
        foreach(i, pathkeys)
        {
-               keys = lfirst((List *) lfirst(i));
-               resdom = tlist_member((Var *) keys, tlist);
+               pathkey = lfirst((List *) lfirst(i));
+               resdom = tlist_member((Var *) pathkey, tlist);
                if (resdom)
                {
                        /*
-                        * Order the resdom keys and replace the operator OID for each
+                        * Order the resdom pathkey and replace the operator OID for each
                         * key with the regproc OID.
                         *
                         * XXX Note that the optimizer only generates merge joins with 1
@@ -852,7 +852,7 @@ set_noname_tlist_operators(List *tlist, List *pathkeys, Oid *operators)
  *       or (SEQSCAN(MATERIAL(plan-node)))
  *
  *       'tlist' is the target list of the scan to be sorted or hashed
- *       'keys' is the list of keys which the sort or hash will be done on
+ *       'pathkeys' is the list of keys which the sort or hash will be done on
  *       'operators' is the operators with which the sort or hash is to be done
  *             (a list of operator OIDs)
  *       'plan-node' is the node which yields tuples for the sort
@@ -860,7 +860,7 @@ set_noname_tlist_operators(List *tlist, List *pathkeys, Oid *operators)
  */
 static Noname *
 make_noname(List *tlist,
-                 List *keys,
+                 List *pathkeys,
                  Oid *operators,
                  Plan *plan_node,
                  int nonametype)
@@ -870,7 +870,7 @@ make_noname(List *tlist,
 
        /* Create a new target list for the noname, with keys set. */
        noname_tlist = set_noname_tlist_operators(new_unsorted_tlist(tlist),
-                                                                                 keys,
+                                                                                 pathkeys,
                                                                                  operators);
        switch (nonametype)
        {
@@ -881,7 +881,7 @@ make_noname(List *tlist,
                                                                                   (Plan *) make_sort(noname_tlist,
                                                                                                          _NONAME_RELATION_ID_,
                                                                                                                          plan_node,
-                                                                                                                 length(keys)));
+                                                                                                                 length(pathkeys)));
                        break;
 
                case NONAME_MATERIAL:
@@ -891,7 +891,7 @@ make_noname(List *tlist,
                                                                           (Plan *) make_material(noname_tlist,
                                                                                                          _NONAME_RELATION_ID_,
                                                                                                                          plan_node,
-                                                                                                                 length(keys)));
+                                                                                                                 length(pathkeys)));
                        break;
 
                default:
index 12057bd2be0cb0d9e2559e384e7fbd31cc9fcd2b..3c5197daebc3772554382a71e6cbd39a57eeb709 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/keys.c,v 1.12 1999/02/09 06:30:39 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/Attic/keys.c,v 1.13 1999/02/10 03:52:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -207,8 +207,7 @@ collect_index_pathkeys(int *index_keys, List *tlist)
                                                           tlist,
                                                           equal_indexkey_var);
                if (mvar)
-                       retval = nconc(retval, lcons(lcons(mvar, NIL),
-                                                                                NIL));
+                       retval = lappend(retval, lcons(mvar, NIL));
                index_keys++;
        }
        return retval;
index 82dc20f5455baba4f6a3c0acf31e79e6960e7791..a645b35a0eba8bc689053ab4926132c9412879dd 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.21 1999/02/09 03:51:27 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.22 1999/02/10 03:52:47 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -165,15 +165,15 @@ better_path(Path *new_path, List *unique_paths, bool *noOther)
                path = (Path *) lfirst(temp);
 
 #ifdef OPTDUP_DEBUG
-               if (!samekeys(path->keys, new_path->keys))
+               if (!samekeys(path->pathkeys, new_path->pathkeys))
                {
                        printf("oldpath\n");
-                       pprint(path->keys);
+                       pprint(path->pathkeys);
                        printf("newpath\n");
-                       pprint(new_path->keys);
-                       if (path->keys && new_path->keys &&
-                               length(lfirst(path->keys)) >= 2 &&
-                               length(lfirst(path->keys)) < length(lfirst(new_path->keys)))
+                       pprint(new_path->pathkeys);
+                       if (path->pathkeys && new_path->pathkeys &&
+                               length(lfirst(path->pathkeys)) >= 2 &&
+                               length(lfirst(path->pathkeys)) < length(lfirst(new_path->pathkeys)))
                                sleep(0); /* set breakpoint here */
                }
                if (!equal_path_ordering(path->path_order,
@@ -186,7 +186,7 @@ better_path(Path *new_path, List *unique_paths, bool *noOther)
                }
 #endif
                
-               if (samekeys(path->keys, new_path->keys) &&
+               if (samekeys(path->pathkeys, new_path->pathkeys) &&
                        equal_path_ordering(path->path_order,
                                                                new_path->path_order))
                {
@@ -232,7 +232,7 @@ create_seqscan_path(RelOptInfo * rel)
        pathnode->path_order = makeNode(PathOrder);
        pathnode->path_order->ordtype = SORTOP_ORDER;
        pathnode->path_order->ord.sortop = NULL;
-       pathnode->keys = NIL;
+       pathnode->pathkeys = NIL;
 
        /*
         * copy restrictinfo list into path for expensive function processing --
@@ -300,7 +300,7 @@ create_index_path(Query *root,
         */
        if (pathnode->path.path_order->ord.sortop)
        {
-               pathnode->path.keys = collect_index_pathkeys(index->indexkeys,
+               pathnode->path.pathkeys = collect_index_pathkeys(index->indexkeys,
                                                                                                         rel->targetlist);
 
                /*
@@ -309,11 +309,11 @@ create_index_path(Query *root,
                 * relevant to the scan are not applied to the scan path node, so
                 * if no index keys were found, we can't order the path).
                 */
-               if (pathnode->path.keys == NULL)
+               if (pathnode->path.pathkeys == NULL)
                        pathnode->path.path_order->ord.sortop = NULL;
        }
        else
-               pathnode->path.keys = NULL;
+               pathnode->path.pathkeys = NULL;
 
        if (is_join_scan || restriction_clauses == NULL)
        {
@@ -413,7 +413,7 @@ create_index_path(Query *root,
  * 'outer_rel' is the outer join relation
  * 'outer_path' is the outer join path.
  * 'inner_path' is the inner join path.
- * 'keys' are the keys of the path
+ * 'pathkeys' are the keys of the path
  *
  * Returns the resulting path node.
  *
@@ -423,7 +423,7 @@ create_nestloop_path(RelOptInfo * joinrel,
                                         RelOptInfo * outer_rel,
                                         Path *outer_path,
                                         Path *inner_path,
-                                        List *keys)
+                                        List *pathkeys)
 {
        JoinPath   *pathnode = makeNode(JoinPath);
 
@@ -432,13 +432,13 @@ create_nestloop_path(RelOptInfo * joinrel,
        pathnode->outerjoinpath = outer_path;
        pathnode->innerjoinpath = inner_path;
        pathnode->pathinfo = joinrel->restrictinfo;
-       pathnode->path.keys = keys;
+       pathnode->path.pathkeys = pathkeys;
        pathnode->path.joinid = NIL;
        pathnode->path.outerjoincost = (Cost) 0.0;
        pathnode->path.loc_restrictinfo = NIL;
        pathnode->path.path_order = makeNode(PathOrder);
        
-       if (keys)
+       if (pathkeys)
        {
                pathnode->path.path_order->ordtype = outer_path->path_order->ordtype;
                if (outer_path->path_order->ordtype == SORTOP_ORDER)
@@ -479,7 +479,7 @@ create_nestloop_path(RelOptInfo * joinrel,
  * 'innerwidth' is the number of bytes per tuple in the inner relation
  * 'outer_path' is the outer path
  * 'inner_path' is the inner path
- * 'keys' are the new keys of the join relation
+ * 'pathkeys' are the new keys of the join relation
  * 'order' is the sort order required for the merge
  * 'mergeclauses' are the applicable join/restriction clauses
  * 'outersortkeys' are the sort varkeys for the outer relation
@@ -494,7 +494,7 @@ create_mergejoin_path(RelOptInfo * joinrel,
                                          int innerwidth,
                                          Path *outer_path,
                                          Path *inner_path,
-                                         List *keys,
+                                         List *pathkeys,
                                          MergeOrder *order,
                                          List *mergeclauses,
                                          List *outersortkeys,
@@ -507,7 +507,7 @@ create_mergejoin_path(RelOptInfo * joinrel,
        pathnode->jpath.outerjoinpath = outer_path;
        pathnode->jpath.innerjoinpath = inner_path;
        pathnode->jpath.pathinfo = joinrel->restrictinfo;
-       pathnode->jpath.path.keys = keys;
+       pathnode->jpath.path.pathkeys = pathkeys;
        pathnode->jpath.path.path_order = makeNode(PathOrder);
        pathnode->jpath.path.path_order->ordtype = MERGE_ORDER;
        pathnode->jpath.path.path_order->ord.merge = order;
@@ -544,7 +544,7 @@ create_mergejoin_path(RelOptInfo * joinrel,
  * 'innerwidth' is the number of bytes per tuple in the inner relation
  * 'outer_path' is the outer path
  * 'inner_path' is the inner path
- * 'keys' are the new keys of the join relation
+ * 'pathkeys' are the new keys of the join relation
  * 'operator' is the hashjoin operator
  * 'hashclauses' are the applicable join/restriction clauses
  * 'outerkeys' are the sort varkeys for the outer relation
@@ -559,7 +559,7 @@ create_hashjoin_path(RelOptInfo * joinrel,
                                         int innerwidth,
                                         Path *outer_path,
                                         Path *inner_path,
-                                        List *keys,
+                                        List *pathkeys,
                                         Oid operator,
                                         List *hashclauses,
                                         List *outerkeys,
@@ -573,7 +573,7 @@ create_hashjoin_path(RelOptInfo * joinrel,
        pathnode->jpath.innerjoinpath = inner_path;
        pathnode->jpath.pathinfo = joinrel->restrictinfo;
        pathnode->jpath.path.loc_restrictinfo = NIL;
-       pathnode->jpath.path.keys = keys;
+       pathnode->jpath.path.pathkeys = pathkeys;
        pathnode->jpath.path.path_order = makeNode(PathOrder);
        pathnode->jpath.path.path_order->ordtype = SORTOP_ORDER;
        pathnode->jpath.path.path_order->ord.sortop = NULL;
index 0df89e2e1576f00751b5b7e81543c16a16db7ce6..643d651170ff3cf6f17b98e1b1c126006780181a 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: print.h,v 1.8 1998/09/01 04:36:48 momjian Exp $
+ * $Id: print.h,v 1.9 1999/02/10 03:52:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -23,7 +23,7 @@ extern void print(void *obj);
 extern void pprint(void *obj);
 extern void print_rt(List *rtable);
 extern void print_expr(Node *expr, List *rtable);
-extern void print_keys(List *keys, List *rtable);
+extern void print_pathkeys(List *pathkeys, List *rtable);
 extern void print_tl(List *tlist, List *rtable);
 extern void print_slot(TupleTableSlot *slot);
 extern void print_plan_recursive(Plan *p, Query *parsetree,
index 7df407f5671db99a55c57bebd6f5e885c444fd76..bdf0b932037dfebb6bc10ebdc18e6703010c4e7a 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: relation.h,v 1.17 1999/02/09 03:51:42 momjian Exp $
+ * $Id: relation.h,v 1.18 1999/02/10 03:52:50 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -148,7 +148,10 @@ typedef struct Path
 
        PathOrder       *path_order;
 
-       List       *keys;               /* this is a List of List of keys */
+       List        *pathkeys;  /* This is a List of List of Var nodes.
+                                                        * It is a List of Lists because of multi-key
+                                                        * indexes.
+                                                        */                                                        
        Cost            outerjoincost;
        Relid           joinid;
        List       *loc_restrictinfo;
index 7d6035c6d4451ce2aeb9a4bb210b466580d83c5d..4a7c8e86f50f4563870b3a7ad488d4134a1891d5 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: cost.h,v 1.12 1999/02/03 20:15:52 momjian Exp $
+ * $Id: cost.h,v 1.13 1999/02/10 03:52:53 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -34,7 +34,7 @@ extern Cost cost_seqscan(int relid, int relpages, int reltuples);
 extern Cost cost_index(Oid indexid, int expected_indexpages, Cost selec,
                   int relpages, int reltuples, int indexpages,
                   int indextuples, bool is_injoin);
-extern Cost cost_sort(List *keys, int tuples, int width, bool noread);
+extern Cost cost_sort(List *pathkeys, int tuples, int width, bool noread);
 extern Cost cost_nestloop(Cost outercost, Cost innercost, int outertuples,
                          int innertuples, int outerpages, bool is_indexjoin);
 extern Cost cost_mergejoin(Cost outercost, Cost innercost,
index 4c8501de952b9a2e1ae5f307272b4f36bc4ac876..19eb5373be593f837ae5be46e5e8caf1207f9e01 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: pathnode.h,v 1.10 1998/09/01 04:37:13 momjian Exp $
+ * $Id: pathnode.h,v 1.11 1999/02/10 03:52:54 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,15 +28,15 @@ extern Path *create_seqscan_path(RelOptInfo * rel);
 extern IndexPath *create_index_path(Query *root, RelOptInfo * rel, RelOptInfo * index,
                                  List *restriction_clauses, bool is_join_scan);
 extern JoinPath *create_nestloop_path(RelOptInfo * joinrel, RelOptInfo * outer_rel,
-                                        Path *outer_path, Path *inner_path, List *keys);
+                                        Path *outer_path, Path *inner_path, List *pathkeys);
 extern MergePath *create_mergejoin_path(RelOptInfo * joinrel, int outersize,
                 int innersize, int outerwidth, int innerwidth, Path *outer_path,
-                                         Path *inner_path, List *keys, MergeOrder *order,
+                                         Path *inner_path, List *pathkeys, MergeOrder *order,
                   List *mergeclauses, List *outersortkeys, List *innersortkeys);
 
 extern HashPath *create_hashjoin_path(RelOptInfo * joinrel, int outersize,
                 int innersize, int outerwidth, int innerwidth, Path *outer_path,
-                  Path *inner_path, List *keys, Oid operator, List *hashclauses,
+                  Path *inner_path, List *pathkeys, Oid operator, List *hashclauses,
                                         List *outerkeys, List *innerkeys);
 
 /*