Rename Path.keys to Path.pathkeys. Too many 'keys' used for other things.
authorBruce Momjian
Wed, 10 Feb 1999 03:52:54 +0000 (03:52 +0000)
committerBruce Momjian
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);
 
 /*