]> granicus.if.org Git - postgresql/commitdiff
Optimizer cleanup.
authorBruce Momjian <bruce@momjian.us>
Mon, 8 Feb 1999 04:29:25 +0000 (04:29 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 8 Feb 1999 04:29:25 +0000 (04:29 +0000)
15 files changed:
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/freefuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/README
src/backend/optimizer/geqo/geqo_paths.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/path/prune.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/util/pathnode.c
src/include/nodes/relation.h

index deecc3aa33d2ad6447018b0f6feb08404459940f..52ea65abfe17b8b8444032f539489559dcf8bf1a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.62 1999/02/05 19:59:25 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.63 1999/02/08 04:29:03 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1093,25 +1093,25 @@ CopyPathFields(Path *from, Path *newnode)
 
        newnode->path_cost = from->path_cost;
 
-       newnode->p_ordering.ordtype = from->p_ordering.ordtype;
-       if (from->p_ordering.ordtype == SORTOP_ORDER)
+       newnode->path_order.ordtype = from->path_order.ordtype;
+       if (from->path_order.ordtype == SORTOP_ORDER)
        {
                int                     len,
                                        i;
-               Oid                *ordering = from->p_ordering.ord.sortop;
+               Oid                *ordering = from->path_order.ord.sortop;
 
                if (ordering)
                {
                        for (len = 0; ordering[len] != 0; len++)
                                ;
-                       newnode->p_ordering.ord.sortop = (Oid *) palloc(sizeof(Oid) * (len + 1));
+                       newnode->path_order.ord.sortop = (Oid *) palloc(sizeof(Oid) * (len + 1));
                        for (i = 0; i < len; i++)
-                               newnode->p_ordering.ord.sortop[i] = ordering[i];
-                       newnode->p_ordering.ord.sortop[len] = 0;
+                               newnode->path_order.ord.sortop[i] = ordering[i];
+                       newnode->path_order.ord.sortop[len] = 0;
                }
        }
        else
-               Node_Copy(from, newnode, p_ordering.ord.merge);
+               Node_Copy(from, newnode, path_order.ord.merge);
 
        Node_Copy(from, newnode, keys);
 
index fe32d455b4054d43a858e48b1749e92580a87ce9..cefe56bc6a7ed59f4dabe11ee8a3dd095db814e7 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.25 1999/02/07 00:52:12 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.26 1999/02/08 04:29:04 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -337,33 +337,33 @@ _equalPath(Path *a, Path *b)
        /*
         * if (a->path_cost != b->path_cost) return(false);
         */
-       if (a->p_ordering.ordtype == SORTOP_ORDER)
+       if (a->path_order.ordtype == SORTOP_ORDER)
        {
                int                     i = 0;
 
-               if (a->p_ordering.ord.sortop == NULL ||
-                       b->p_ordering.ord.sortop == NULL)
+               if (a->path_order.ord.sortop == NULL ||
+                       b->path_order.ord.sortop == NULL)
                {
-                       if (a->p_ordering.ord.sortop != b->p_ordering.ord.sortop)
+                       if (a->path_order.ord.sortop != b->path_order.ord.sortop)
                                return false;
                }
                else
                {
-                       while (a->p_ordering.ord.sortop[i] != 0 &&
-                                  b->p_ordering.ord.sortop[i] != 0)
+                       while (a->path_order.ord.sortop[i] != 0 &&
+                                  b->path_order.ord.sortop[i] != 0)
                        {
-                               if (a->p_ordering.ord.sortop[i] != b->p_ordering.ord.sortop[i])
+                               if (a->path_order.ord.sortop[i] != b->path_order.ord.sortop[i])
                                        return false;
                                i++;
                        }
-                       if (a->p_ordering.ord.sortop[i] != 0 ||
-                               b->p_ordering.ord.sortop[i] != 0)
+                       if (a->path_order.ord.sortop[i] != 0 ||
+                               b->path_order.ord.sortop[i] != 0)
                                return false;
                }
        }
        else
        {
-               if (!equal(a->p_ordering.ord.merge, b->p_ordering.ord.merge))
+               if (!equal(a->path_order.ord.merge, b->path_order.ord.merge))
                        return false;
        }
        if (!equal(a->keys, b->keys))
index e07573cf0ff76f026a1e53eba0c3e87cdda6a920..af69573055da9d470a35dd7201c3db84e3fac7a8 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.1 1999/02/06 16:50:25 wieck Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.2 1999/02/08 04:29:04 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -756,13 +756,13 @@ _freeRelOptInfo(RelOptInfo * node)
 static void
 FreePathFields(Path *node)
 {
-       if (node->p_ordering.ordtype == SORTOP_ORDER)
+       if (node->path_order.ordtype == SORTOP_ORDER)
        {
-               if (node->p_ordering.ord.sortop)
-                       pfree(node->p_ordering.ord.sortop);
+               if (node->path_order.ord.sortop)
+                       pfree(node->path_order.ord.sortop);
        }
        else
-               freeObject(node->p_ordering.ord.merge);
+               freeObject(node->path_order.ord.merge);
 
        freeObject(node->keys);
 
index 43c71c6a81d5126c27a44a42d4aaa07a0985c632..bfbd9436d3adfb56054f9cf8eb6950e466775df2 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.49 1999/02/05 19:59:25 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.50 1999/02/08 04:29:04 momjian Exp $
  *
  * NOTES
  *       Most of the read functions for plan nodes are tested. (In fact, they
@@ -1474,8 +1474,8 @@ _readPath()
        local_node->path_cost = (Cost) atof(token);
 
 #if 0
-       token = lsptok(NULL, &length);          /* get :p_ordering */
-       local_node->p_ordering = nodeRead(true);                        /* now read it */
+       token = lsptok(NULL, &length);          /* get :path_order */
+       local_node->path_order = nodeRead(true);                        /* now read it */
 #endif
 
        token = lsptok(NULL, &length);          /* get :keys */
@@ -1508,8 +1508,8 @@ _readIndexPath()
        local_node->path.path_cost = (Cost) atof(token);
 
 #if 0
-       token = lsptok(NULL, &length);          /* get :p_ordering */
-       local_node->path.p_ordering = nodeRead(true);           /* now read it */
+       token = lsptok(NULL, &length);          /* get :path_order */
+       local_node->path.path_order = nodeRead(true);           /* now read it */
 #endif
 
        token = lsptok(NULL, &length);          /* get :keys */
@@ -1549,8 +1549,8 @@ _readJoinPath()
        local_node->path.path_cost = (Cost) atof(token);
 
 #if 0
-       token = lsptok(NULL, &length);          /* get :p_ordering */
-       local_node->path.p_ordering = nodeRead(true);           /* now read it */
+       token = lsptok(NULL, &length);          /* get :path_order */
+       local_node->path.path_order = nodeRead(true);           /* now read it */
 #endif
 
        token = lsptok(NULL, &length);          /* get :keys */
@@ -1616,8 +1616,8 @@ _readMergePath()
        local_node->jpath.path.path_cost = (Cost) atof(token);
 
 #if 0
-       token = lsptok(NULL, &length);          /* get :p_ordering */
-       local_node->jpath.path.p_ordering = nodeRead(true); /* now read it */
+       token = lsptok(NULL, &length);          /* get :path_order */
+       local_node->jpath.path.path_order = nodeRead(true); /* now read it */
 #endif
 
        token = lsptok(NULL, &length);          /* get :keys */
@@ -1692,8 +1692,8 @@ _readHashPath()
        local_node->jpath.path.path_cost = (Cost) atof(token);
 
 #if 0
-       token = lsptok(NULL, &length);          /* get :p_ordering */
-       local_node->jpath.path.p_ordering = nodeRead(true); /* now read it */
+       token = lsptok(NULL, &length);          /* get :path_order */
+       local_node->jpath.path.path_order = nodeRead(true); /* now read it */
 #endif
 
        token = lsptok(NULL, &length);          /* get :keys */
index 6d9dae115c389f81e79112b19eef0ab7eff8b1b3..18b534191e3c09cabd77d4931ed218e15d6c1c71 100644 (file)
@@ -1,3 +1,11 @@
+The optimizer generates optimial query plans by doing several steps:
+
+Take each relation in a query, and make a RelOptInfo structure for it. 
+Find each way of accessing the relation, called a Path, including
+sequential and index scans, and add it to the RelOptInfo.path_order
+list.
+
+
 Optimizer Functions
 -------------------
 
index 25928d167f82bb9484b5d1dcc6892737476c065a..9d80ff67f6335daac3fa7c7d5c6261b5c4402fc5 100644 (file)
@@ -5,7 +5,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: geqo_paths.c,v 1.12 1998/09/01 04:29:21 momjian Exp $
+ * $Id: geqo_paths.c,v 1.13 1999/02/08 04:29:06 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -113,7 +113,7 @@ geqo_rel_paths(RelOptInfo * rel)
        {
                path = (Path *) lfirst(y);
 
-               if (!path->p_ordering.ord.sortop)
+               if (!path->path_order.ord.sortop)
                        break;
        }
 
index ae937cc9763032c89148afaca3b1e248a3d6cd4f..9040b32ccf8a95b59af6722581c7796d50fff483 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.38 1999/02/05 19:59:26 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.39 1999/02/08 04:29:08 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1290,8 +1290,8 @@ index_innerjoin(Query *root, RelOptInfo * rel, List *clausegroup_list,
 
                pathnode->path.pathtype = T_IndexScan;
                pathnode->path.parent = rel;
-           pathnode->path.p_ordering.ordtype = SORTOP_ORDER;
-           pathnode->path.p_ordering.ord.sortop = index->ordering;
+           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->indexid = index->relids;
index 7a5f4889b16f02186c7d74abd734f69554bbb5e5..d57b861de2afbce5ab257fc58f5495c928251e9d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.14 1999/02/04 03:19:08 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.15 1999/02/08 04:29:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -328,7 +328,7 @@ match_unsorted_outer(RelOptInfo * joinrel,
 
                outerpath = (Path *) lfirst(i);
 
-               outerpath_ordering = &outerpath->p_ordering;
+               outerpath_ordering = &outerpath->path_order;
 
                if (outerpath_ordering)
                {
@@ -471,7 +471,7 @@ match_unsorted_inner(RelOptInfo * joinrel,
 
                innerpath = (Path *) lfirst(i);
 
-               innerpath_ordering = &innerpath->p_ordering;
+               innerpath_ordering = &innerpath->path_order;
 
                if (innerpath_ordering)
                {
index 899da28ff0891948ce2a8132fd9c73d1ac9c2817..d90097404a87251de6c538f8248e3ae95c28ae6a 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.10 1999/02/06 17:29:26 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/joinutils.c,v 1.11 1999/02/08 04:29:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -219,7 +219,7 @@ match_paths_joinkeys(List *joinkeys,
                key_match = every_func(joinkeys, path->keys, which_subkey);
 
                if (equal_path_ordering(ordering,
-                                                               &path->p_ordering) &&
+                                                               &path->path_order) &&
                        length(joinkeys) == length(path->keys) &&
                        key_match)
                {
index d06a5980f98c90a88f51fd8ce39adfbe683103e2..d4d20dd5495b5c16ae057d2d1cc41bedbe153aef 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.13 1999/02/06 17:29:26 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/mergeutils.c,v 1.14 1999/02/08 04:29:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -52,16 +52,16 @@ group_clauses_by_order(List *restrictinfo_list,
                         * Create a new mergeinfo node and add it to 'mergeinfo-list'
                         * if one does not yet exist for this merge ordering.
                         */
-                       PathOrder       p_ordering;
+                       PathOrder       path_order;
                        MergeInfo          *xmergeinfo;
                        Expr       *clause = restrictinfo->clause;
                        Var                *leftop = get_leftop(clause);
                        Var                *rightop = get_rightop(clause);
                        JoinKey    *keys;
 
-                       p_ordering.ordtype = MERGE_ORDER;
-                       p_ordering.ord.merge = merge_ordering;
-                       xmergeinfo = match_order_mergeinfo(&p_ordering, mergeinfo_list);
+                       path_order.ordtype = MERGE_ORDER;
+                       path_order.ord.merge = merge_ordering;
+                       xmergeinfo = match_order_mergeinfo(&path_order, mergeinfo_list);
                        if (inner_relid == leftop->varno)
                        {
                                keys = makeNode(JoinKey);
index 9ae341d54275ba8e202fb8fa19a26cfaa5dec5b5..5cfb5e00dd71867444aebd321353f29ec645866b 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.14 1999/02/03 21:16:28 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/orindxpath.c,v 1.15 1999/02/08 04:29:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -104,13 +104,13 @@ create_or_index_paths(Query *root,
 
                                pathnode->path.pathtype = T_IndexScan;
                                pathnode->path.parent = rel;
-                           pathnode->path.p_ordering.ordtype = SORTOP_ORDER;
+                           pathnode->path.path_order.ordtype = SORTOP_ORDER;
                            /*
                                 *      This is an IndexScan, but it does index lookups based
                                 *      on the order of the fields specified in the WHERE clause,
                                 *      not in any order, so the sortop is NULL.
                                 */
-                           pathnode->path.p_ordering.ord.sortop = NULL;
+                           pathnode->path.path_order.ord.sortop = NULL;
                            pathnode->path.keys = NIL;  /* not sure about this, bjm 1998/09/21 */
 
                                pathnode->indexqual = lcons(clausenode, NIL);
index bacdedcfe1c9b13abbee9e3dcd931a9e9ba3cc8f..e3cbaec7d5acc7afe95bd50c37d6581c03e16428 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.23 1999/02/05 20:34:11 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.24 1999/02/08 04:29:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -109,7 +109,7 @@ prune_rel_paths(List *rel_list)
                {
                        path = (Path *) lfirst(y);
 
-                       if (!path->p_ordering.ord.sortop)
+                       if (!path->path_order.ord.sortop)
                                break;
                }
                cheapest = (JoinPath *) prune_rel_path(rel, path);
index e2bdb295dac0c8b1f58c96ad62652679a0334157..0d16d2b5b25dddb65ff3ca41a01826b75ddcbb10 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.37 1999/02/05 19:59:27 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.38 1999/02/08 04:29:17 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -529,14 +529,14 @@ create_mergejoin_node(MergePath *best_path,
                                                                                                outer_tlist,
                                                                                                inner_tlist));
 
-       opcode = get_opcode((best_path->jpath.path.p_ordering.ord.merge)->join_operator);
+       opcode = get_opcode((best_path->jpath.path.path_order.ord.merge)->join_operator);
 
        outer_order = (Oid *) palloc(sizeof(Oid) * 2);
-       outer_order[0] = (best_path->jpath.path.p_ordering.ord.merge)->left_operator;
+       outer_order[0] = (best_path->jpath.path.path_order.ord.merge)->left_operator;
        outer_order[1] = 0;
 
        inner_order = (Oid *) palloc(sizeof(Oid) * 2);
-       inner_order[0] = (best_path->jpath.path.p_ordering.ord.merge)->right_operator;
+       inner_order[0] = (best_path->jpath.path.path_order.ord.merge)->right_operator;
        inner_order[1] = 0;
 
        /*
index 2b6aff284dd58ed5b92fe77bdcf14e045a9d4c06..cf48ecc6819e0ab0b0ff479abcefde2aa8f8eac9 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.19 1999/02/06 17:29:27 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.20 1999/02/08 04:29:21 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -165,8 +165,8 @@ better_path(Path *new_path, List *unique_paths, bool *noOther)
                path = (Path *) lfirst(temp);
 
                if (samekeys(path->keys, new_path->keys) &&
-                       equal_path_ordering(&path->p_ordering,
-                                                               &new_path->p_ordering))
+                       equal_path_ordering(&path->path_order,
+                                                               &new_path->path_order))
                {
                        old_path = path;
                        break;
@@ -207,8 +207,8 @@ create_seqscan_path(RelOptInfo * rel)
        pathnode->pathtype = T_SeqScan;
        pathnode->parent = rel;
        pathnode->path_cost = 0.0;
-       pathnode->p_ordering.ordtype = SORTOP_ORDER;
-       pathnode->p_ordering.ord.sortop = NULL;
+       pathnode->path_order.ordtype = SORTOP_ORDER;
+       pathnode->path_order.ord.sortop = NULL;
        pathnode->keys = NIL;
 
        /*
@@ -256,8 +256,8 @@ create_index_path(Query *root,
 
        pathnode->path.pathtype = T_IndexScan;
        pathnode->path.parent = rel;
-       pathnode->path.p_ordering.ordtype = SORTOP_ORDER;
-       pathnode->path.p_ordering.ord.sortop = index->ordering;
+       pathnode->path.path_order.ordtype = SORTOP_ORDER;
+       pathnode->path.path_order.ord.sortop = index->ordering;
 
        pathnode->indexid = index->relids;
        pathnode->indexkeys = index->indexkeys;
@@ -274,7 +274,7 @@ create_index_path(Query *root,
         * The index must have an ordering for the path to have (ordering)
         * keys, and vice versa.
         */
-       if (pathnode->path.p_ordering.ord.sortop)
+       if (pathnode->path.path_order.ord.sortop)
        {
                pathnode->path.keys = collect_index_pathkeys(index->indexkeys,
                                                                                                         rel->targetlist);
@@ -286,7 +286,7 @@ create_index_path(Query *root,
                 * if no index keys were found, we can't order the path).
                 */
                if (pathnode->path.keys == NULL)
-                       pathnode->path.p_ordering.ord.sortop = NULL;
+                       pathnode->path.path_order.ord.sortop = NULL;
        }
        else
                pathnode->path.keys = NULL;
@@ -415,20 +415,20 @@ create_nestloop_path(RelOptInfo * joinrel,
 
        if (keys)
        {
-               pathnode->path.p_ordering.ordtype = outer_path->p_ordering.ordtype;
-               if (outer_path->p_ordering.ordtype == SORTOP_ORDER)
+               pathnode->path.path_order.ordtype = outer_path->path_order.ordtype;
+               if (outer_path->path_order.ordtype == SORTOP_ORDER)
                {
-                       pathnode->path.p_ordering.ord.sortop = outer_path->p_ordering.ord.sortop;
+                       pathnode->path.path_order.ord.sortop = outer_path->path_order.ord.sortop;
                }
                else
                {
-                       pathnode->path.p_ordering.ord.merge = outer_path->p_ordering.ord.merge;
+                       pathnode->path.path_order.ord.merge = outer_path->path_order.ord.merge;
                }
        }
        else
        {
-               pathnode->path.p_ordering.ordtype = SORTOP_ORDER;
-               pathnode->path.p_ordering.ord.sortop = NULL;
+               pathnode->path.path_order.ordtype = SORTOP_ORDER;
+               pathnode->path.path_order.ord.sortop = NULL;
        }
 
        pathnode->path.path_cost = cost_nestloop(outer_path->path_cost,
@@ -487,8 +487,8 @@ create_mergejoin_path(RelOptInfo * joinrel,
        pathnode->jpath.innerjoinpath = inner_path;
        pathnode->jpath.pathinfo = joinrel->restrictinfo;
        pathnode->jpath.path.keys = keys;
-       pathnode->jpath.path.p_ordering.ordtype = MERGE_ORDER;
-       pathnode->jpath.path.p_ordering.ord.merge = order;
+       pathnode->jpath.path.path_order.ordtype = MERGE_ORDER;
+       pathnode->jpath.path.path_order.ord.merge = order;
        pathnode->path_mergeclauses = mergeclauses;
        pathnode->jpath.path.loc_restrictinfo = NIL;
        pathnode->outersortkeys = outersortkeys;
@@ -552,8 +552,8 @@ create_hashjoin_path(RelOptInfo * joinrel,
        pathnode->jpath.pathinfo = joinrel->restrictinfo;
        pathnode->jpath.path.loc_restrictinfo = NIL;
        pathnode->jpath.path.keys = keys;
-       pathnode->jpath.path.p_ordering.ordtype = SORTOP_ORDER;
-       pathnode->jpath.path.p_ordering.ord.sortop = NULL;
+       pathnode->jpath.path.path_order.ordtype = SORTOP_ORDER;
+       pathnode->jpath.path.path_order.ord.sortop = NULL;
        pathnode->jpath.path.outerjoincost = (Cost) 0.0;
        pathnode->jpath.path.joinid = (Relid) NULL;
        /* pathnode->hashjoinoperator = operator;  */
index 51b30d4c4e39c0232cfc72594f6515c401724aab..aaee1637cf3eefa10e0fdeda3802378f00a2724a 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: relation.h,v 1.15 1999/02/05 19:59:31 momjian Exp $
+ * $Id: relation.h,v 1.16 1999/02/08 04:29:25 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -144,7 +144,7 @@ typedef struct Path
 
        NodeTag         pathtype;
 
-       PathOrder       p_ordering;
+       PathOrder       path_order;
 
        List       *keys;
        Cost            outerjoincost;