Changeset: 5ad737dc2e27 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5ad737dc2e27 Modified Files: sql/server/rel_select.c Branch: default Log Message:
Small bugfix, at rel_values, set the cardinality to the relation columns as well diffs (43 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -763,12 +763,12 @@ rel_values(sql_query *query, symbol *tab sql_rel *r = NULL; dlist *rowlist = tableref->data.lval; symbol *optname = rowlist->t->data.sym; - dnode *o; node *m; list *exps = sa_list(sql->sa); exp_kind ek = {type_value, card_value, TRUE}; - - for (o = rowlist->h; o; o = o->next) { + unsigned int card = dlist_length(rowlist) == 1 ? CARD_ATOM : CARD_MULTI; + + for (dnode *o = rowlist->h; o; o = o->next) { dlist *values = o->data.lval; /* When performing sub-queries, the relation name appears under a SQL_NAME symbol at the end of the list */ @@ -798,14 +798,19 @@ rel_values(sql_query *query, symbol *tab } } } - /* loop to check types */ - for (m = exps->h; m; m = m->next) - if (!(m->data = exp_values_set_supertype(sql, (sql_exp*) m->data, NULL))) + /* loop to check types and cardinality */ + for (m = exps->h; m; m = m->next) { + sql_exp *e = m->data; + + if (!(e = exp_values_set_supertype(sql, e, NULL))) return NULL; + e->card = card; + m->data = e; + } r = rel_project(sql->sa, NULL, exps); r->nrcols = list_length(exps); - r->card = dlist_length(rowlist) == 1 ? CARD_ATOM : CARD_MULTI; + r->card = card; return rel_table_optname(sql, r, optname); } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list