Changeset: e51622df1e70 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e51622df1e70 Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_statement.c sql/server/rel_multiset.c Branch: nested Log Message:
small fixes for naming nested types diffs (83 lines): diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -4876,9 +4876,11 @@ rel2bin_project(backend *be, sql_rel *re return NULL; for (en = rel->exps->h; en; en = en->next) { sql_exp *exp = en->data; + /* we need to ouput composite properly, for insert statements sql_subtype *st = exp_subtype(exp); - if (st && st->type->composite) + if (rel->l && st && st->type->composite) continue; + */ int oldvtop = be->mb->vtop, oldstop = be->mb->stop; stmt *s = exp_bin(be, exp, sub, NULL /*psub*/, NULL, NULL, NULL, NULL, 0, 0, 0); @@ -5875,8 +5877,8 @@ rel2bin_insert(backend *be, sql_rel *rel if (!sql_insert_triggers(be, t, updates, 0)) return sql_error(sql, 10, SQLSTATE(27000) "INSERT INTO: triggers failed for table '%s'", t->base.name); - insert = inserts->op4.lval->h->data; - if (insert->nrcols == 0) { + insert = inserts->op4.lval->h?inserts->op4.lval->h->data:NULL; + if (!insert || insert->nrcols == 0) { cnt = stmt_atom_lng(be, 1); } else { cnt = stmt_aggr(be, insert, NULL, NULL, sql_bind_func(sql, "sys", "count", sql_bind_localtype("void"), NULL, F_AGGR, true, true), 1, 0, 1); diff --git a/sql/backends/monet5/sql_statement.c b/sql/backends/monet5/sql_statement.c --- a/sql/backends/monet5/sql_statement.c +++ b/sql/backends/monet5/sql_statement.c @@ -3296,7 +3296,7 @@ dump_header(mvc *sql, MalBlkPtr mb, list stmt *c = n->data; sql_subtype *t = tail_type(c); if (t->multiset) { /* properly handle subtable */ - printf("multiset\n"); + printf("%multiset\n"); } sql_alias *tname = table_name(sql->sa, c); const char *_empty = ""; diff --git a/sql/server/rel_multiset.c b/sql/server/rel_multiset.c --- a/sql/server/rel_multiset.c +++ b/sql/server/rel_multiset.c @@ -345,32 +345,33 @@ fm_project(visitor *v, sql_rel *rel) sql_exp *e = n->data; sql_subtype *t = exp_subtype(e); if (t->multiset) { + sql_alias *cn = a_create(v->sql->sa, e->alias.name); sql_exp *rowid = exps_bind_column(exps, exp_name(e), NULL, NULL, 0); if (!rowid) - rowid = exps_bind_column(exps, "rowid", NULL, NULL, 0); + rowid = exps_bind_column2(exps, cn, "rowid", NULL); rowid = exp_ref(v->sql, rowid); append(nexps, rowid); if (t->type->composite) { for(node *f = t->type->d.fields->h; f; f = f->next) { sql_arg *field = f->data; - sql_exp *mse = exps_bind_column(exps, field->name, NULL, NULL, 0); + sql_exp *mse = exps_bind_column2(exps, cn, field->name, NULL); mse = exp_ref(v->sql, mse); append(nexps, mse); } } else { - sql_exp *mse = exps_bind_column(exps, "elements", NULL, NULL, 0); + sql_exp *mse = exps_bind_column2(exps, cn, "elements", NULL); mse = exp_ref(v->sql, mse); append(nexps, mse); } - sql_exp *msid = exps_bind_column(exps, "id", NULL, NULL, 0); + sql_exp *msid = exps_bind_column2(exps, cn, "id", NULL); if (!msid) - msid = exps_bind_column(exps, "multisetid", NULL, NULL, 0); + msid = exps_bind_column2(exps, cn, "multisetid", NULL); msid = exp_ref(v->sql, msid); append(nexps, msid); if (t->multiset == MS_ARRAY) { - sql_exp *msnr = exps_bind_column(exps, "nr", NULL, NULL, 0); + sql_exp *msnr = exps_bind_column2(exps, cn, "nr", NULL); if (!msnr) - msnr = exps_bind_column(exps, "multisetnr", NULL, NULL, 0); + msnr = exps_bind_column2(exps, cn, "multisetnr", NULL); msnr = exp_ref(v->sql, msnr); append(nexps, msnr); } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org