aboutsummaryrefslogtreecommitdiff
path: root/src/include/nodes/relation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/nodes/relation.h')
-rw-r--r--src/include/nodes/relation.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h
index 6b205b20da5..0d129f38ea1 100644
--- a/src/include/nodes/relation.h
+++ b/src/include/nodes/relation.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.87 2003/12/28 21:57:37 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.88 2003/12/30 23:53:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -596,6 +596,19 @@ typedef struct RestrictInfo
bool ispusheddown; /* TRUE if clause was pushed down in level */
+ /*
+ * This flag is set true if the clause looks potentially useful as a
+ * merge or hash join clause, that is if it is a binary opclause with
+ * nonoverlapping sets of relids referenced in the left and right sides.
+ * (Whether the operator is actually merge or hash joinable isn't
+ * checked, however.)
+ */
+ bool canjoin;
+
+ /* These fields are set for any binary opclause: */
+ Relids left_relids; /* relids in left side of clause */
+ Relids right_relids; /* relids in right side of clause */
+
/* only used if clause is an OR clause: */
List *subclauseindices; /* indexes matching subclauses */
/* subclauseindices is a List of Lists of IndexOptInfos */
@@ -604,15 +617,6 @@ typedef struct RestrictInfo
QualCost eval_cost; /* eval cost of clause; -1 if not yet set */
Selectivity this_selec; /* selectivity; -1 if not yet set */
- /*
- * If the clause looks useful for joining --- that is, it is a binary
- * opclause with nonoverlapping sets of relids referenced in the left
- * and right sides --- then these two fields are set to sets of the
- * referenced relids. Otherwise they are both NULL.
- */
- Relids left_relids; /* relids in left side of join clause */
- Relids right_relids; /* relids in right side of join clause */
-
/* valid if clause is mergejoinable, else InvalidOid: */
Oid mergejoinoperator; /* copy of clause operator */
Oid left_sortop; /* leftside sortop needed for mergejoin */