Changeset: 864a5199c36b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=864a5199c36b
Modified Files:
sql/backends/monet5/rel_bin.c
sql/server/rel_select.c
Branch: arrays
Log Message:
fixed bug when carrying the default value along with the non-dimensional column
diffs (47 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
@@ -547,11 +547,7 @@ exp_bin(mvc *sql, sql_exp *e, stmt *left
printf("could not find %s.%s\n", (char*)e->l,
(char*)e->r);
print_stmtlist(sql->sa, left);
print_stmtlist(sql->sa, right);
- }
-
- if(e->f) { //it is the default value
- s->op1 = exp_bin(sql, e->f, NULL, NULL, NULL, NULL,
NULL, NULL);
- }
+ }
} break;
case e_cmp: {
stmt *l = NULL, *r = NULL, *r2 = NULL;
@@ -1212,6 +1208,10 @@ rel2bin_basetable( mvc *sql, sql_rel *re
} else {
sql_column *c = find_sql_column(t, oname);
s = stmt_col(sql, c, dels);
+
+ if(isArray(t) && exp->f) { //carrythe default
value
+ s->op1 = exp_bin(sql, exp->f, NULL,
NULL, NULL, NULL, NULL, NULL);
+ }
}
}
s->tname = rname;
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
@@ -470,6 +470,16 @@ rel_basetable(mvc *sql, sql_table *t, ch
sql_column *c = cn->data;
sql_exp *e = exp_alias(sa, atname, c->base.name, tname,
c->base.name, &c->type, CARD_MULTI, c->null, 0);
+ //if the column belongs to an array I need to carry along the default
value (if provided)
+ if(isArray(t) && c->def) {
+ char *q = sa_message(sql->sa, "select %s;", c->def);
+ sql_exp* edef = rel_parse_val(sql, q, sql->emode);
+ if (!edef || (edef = rel_check_type(sql, &c->type, edef,
type_equal)) == NULL)
+ e->f = NULL;
+ else
+ e->f = edef;
+ }
+
if (c->t->pkey && ((sql_kc*)c->t->pkey->k.columns->h->data)->c
== c) {
p = e->p = prop_create(sa, PROP_HASHCOL, e->p);
p->value = c->t->pkey;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list