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

Reply via email to