aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/restrictinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/util/restrictinfo.c')
-rw-r--r--src/backend/optimizer/util/restrictinfo.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/backend/optimizer/util/restrictinfo.c b/src/backend/optimizer/util/restrictinfo.c
index 3ce924de1bb..adbfd884c36 100644
--- a/src/backend/optimizer/util/restrictinfo.c
+++ b/src/backend/optimizer/util/restrictinfo.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.10 2000/05/30 00:49:49 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/restrictinfo.c,v 1.11 2000/09/12 21:06:58 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,3 +54,29 @@ get_actual_clauses(List *restrictinfo_list)
}
return result;
}
+
+/*
+ * get_actual_join_clauses
+ *
+ * Extract clauses from 'restrictinfo_list', separating those that
+ * came from JOIN/ON conditions from those that didn't.
+ */
+void
+get_actual_join_clauses(List *restrictinfo_list,
+ List **joinquals, List **otherquals)
+{
+ List *temp;
+
+ *joinquals = NIL;
+ *otherquals = NIL;
+
+ foreach(temp, restrictinfo_list)
+ {
+ RestrictInfo *clause = (RestrictInfo *) lfirst(temp);
+
+ if (clause->isjoinqual)
+ *joinquals = lappend(*joinquals, clause->clause);
+ else
+ *otherquals = lappend(*otherquals, clause->clause);
+ }
+}