Changeset: 78ab43f275b0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=78ab43f275b0
Modified Files:
sql/include/sql_catalog.h
sql/server/rel_dump.c
Branch: subquery
Log Message:
all cmp_* and mark_* types used during relational plan creation should be lower
than other
used flags (ie < 16)
diffs (83 lines):
diff --git a/sql/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -161,17 +161,17 @@ typedef enum comp_type {
cmp_or = 7,
cmp_in = 8, /* in value list */
cmp_notin = 9, /* not in value list */
+ cmp_equal_nil = 10, /* case equi join, with nil = nil */
- mark_in = 10, /* mark joins */
- mark_notin = 11,
- mark_exists = 12,
- mark_notexists = 33,
+ mark_in = 11, /* mark joins */
+ mark_notin = 12,
+ mark_exists = 13,
+ mark_notexists = 14,
/* The followin cmp_* are only used within stmt (not sql_exp) */
- cmp_all = 14, /* special case for crossproducts */
- cmp_project = 15, /* special case for projection joins */
- cmp_joined = 16, /* special case already joined */
- cmp_equal_nil = 17, /* special case equi join, with nil =
nil */
+ cmp_all = 15, /* special case for crossproducts */
+ cmp_project = 16, /* special case for projection joins */
+ cmp_joined = 17, /* special case already joined */
cmp_left = 18, /* special case equi join, keep left
order */
cmp_left_project = 19 /* last step of outer join */
} comp_type;
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -54,19 +54,24 @@ cmp_print(mvc *sql, stream *fout, int cm
case cmp_lt: r = "<"; break;
case cmp_equal: r = "="; break;
case cmp_notequal: r = "!="; break;
- case cmp_all: r = "all"; break;
+
+ case cmp_filter: r = "filter"; break;
case cmp_or: r = "or"; break;
case cmp_in: r = "in"; break;
case cmp_notin: r = "notin"; break;
+ case cmp_equal_nil: r = "=*"; break;
case mark_in: r = "any ="; break;
case mark_notin: r = "all <>"; break;
case mark_exists: r = "exists"; break;
case mark_notexists: r = "!exists"; break;
- case cmp_filter: r = "filter"; break;
- default:
- r = "";
+ case cmp_all:
+ case cmp_project:
+ case cmp_joined:
+ case cmp_left:
+ case cmp_left_project:
+ assert(0); r = "inner"; break;
}
mnstr_printf(fout, " %s ", r);
}
@@ -1121,9 +1126,21 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re
f = cmp_or;
}
break;
+ case '!':
+ f = cmp_notequal;
+ (*pos)++;
+ if (r[(*pos)] == '=') {
+ f = cmp_notequal;
+ (*pos)++;
+ }
+ break;
case '=':
f = cmp_equal;
(*pos)++;
+ if (r[(*pos)] == '*') {
+ f = cmp_equal_nil;
+ (*pos)++;
+ }
break;
case '<':
f = cmp_lt;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list