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