Changeset: eba9c8b0cdfc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/eba9c8b0cdfc
Modified Files:
        sql/server/rel_dump.c
        sql/server/rel_dump.h
        sql/server/rel_schema.c
Branch: default
Log Message:

add exp2str
test that we never have more than just the expression in a check constraint.


diffs (64 lines):

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
@@ -383,6 +383,34 @@ cleanup:
        return fres;
 }
 
+str
+exp2str( mvc *sql, sql_exp *exp)
+{
+       buffer *b = NULL;
+       stream *s = NULL;
+       char *res = NULL;
+
+       b = buffer_create(1024);
+       if(b == NULL)
+               goto cleanup;
+       s = buffer_wastream(b, "exp_dump");
+       if(s == NULL)
+               goto cleanup;
+
+       exp_print(sql, s, exp, 0, NULL, 0, 0, 0);
+       res = buffer_get_buf(b);
+
+cleanup:
+       if(b)
+               buffer_destroy(b);
+       if(s)
+               close_stream(s);
+
+       char* fres = SA_STRDUP(sql->sa, res);
+       free (res);
+       return fres;
+}
+
 static void
 exps_print(mvc *sql, stream *fout, list *exps, int depth, list *refs, int 
alias, int brackets, int decorate)
 {
diff --git a/sql/server/rel_dump.h b/sql/server/rel_dump.h
--- a/sql/server/rel_dump.h
+++ b/sql/server/rel_dump.h
@@ -20,6 +20,7 @@ extern void rel_print_(mvc *sql, stream 
 extern void rel_print_refs(mvc *sql, stream* fout, sql_rel *rel, int depth, 
list *refs, int decorate);
 
 extern str rel2str( mvc *sql, sql_rel *rel);
+extern str exp2str( mvc *sql, sql_exp *exp);
 extern sql_rel *rel_read(mvc *sql, char *ra, int *pos, list *refs);
 extern void exp_print(mvc *sql, stream *fout, sql_exp *e, int depth, list 
*refs, int comma, int alias, int decorate);
 
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -388,8 +388,10 @@ sql_rel* create_check_plan(sql_query *qu
 
        mvc *sql = query->sql;
        exp_kind ek = {type_value, card_value, FALSE};
-       sql_rel* rel = rel_basetable(sql, t, t->base.name);
+       sql_rel* rel = rel_basetable(sql, t, t->base.name), *orel = rel;
        sql_exp *e = rel_logical_value_exp(query, &rel, s->data.sym, sql_sel | 
sql_no_subquery, ek);
+       assert(rel == orel);
+       (void)orel;
        rel->exps = rel_base_projection(sql, rel, 0);
        list *pexps = sa_list(sql->sa);
        pexps = append(pexps, e);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to