Changeset: 3fc79277936b for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3fc79277936b Modified Files: MonetDB5/src/optimizer/opt_prelude.mx MonetDB5/src/optimizer/opt_support.mx Branch: default Log Message:
Merge with Oct2010 branch. diffs (76 lines): diff -r 68308d7e320a -r 3fc79277936b sql/src/server/rel_select.mx --- a/sql/src/server/rel_select.mx Tue Sep 07 10:49:13 2010 +0200 +++ b/sql/src/server/rel_select.mx Tue Sep 07 11:03:36 2010 +0200 @@ -39,6 +39,7 @@ extern sql_rel * rel_project(sql_rel *l, list *e); extern void rel_project_add_exp( mvc *sql, sql_rel *rel, sql_exp *e); extern list * rel_projections(mvc *sql, sql_rel *rel, char *tname, int settname , int intern); +extern sql_exp *rel_column_exp(mvc *sql, sql_rel **rel, symbol *column_e, int f); extern void rel_add_intern(mvc *sql, sql_rel *rel); @@ -4265,7 +4266,7 @@ return NULL; } -static sql_exp * +sql_exp * rel_column_exp(mvc *sql, sql_rel **rel, symbol *column_e, int f) { if (column_e->token == SQL_COLUMN) { diff -r 68308d7e320a -r 3fc79277936b sql/src/server/rel_updates.mx --- a/sql/src/server/rel_updates.mx Tue Sep 07 10:49:13 2010 +0200 +++ b/sql/src/server/rel_updates.mx Tue Sep 07 11:03:36 2010 +0200 @@ -377,14 +377,14 @@ symbol *a = NULL; sql_exp *v = NULL; dlist *assignment = n->data.sym->data.lval; - char *cname = assignment->h->data.sval; + char *cname = assignment->h->next->data.sval; sql_column *c = mvc_bind_column(sql, t, cname); if (!c) { rel_destroy(r); - return sql_error(sql, 02, "UPDATE: no such column '%s.%s'", t->base.name, assignment->h->data.sval); + return sql_error(sql, 02, "UPDATE: no such column '%s.%s'", t->base.name, cname); } - a = assignment->h->next->data.sym; + a = assignment->h->data.sym; if (a) { int status = sql->session->status; sql_rel *rel_val = NULL; @@ -393,9 +393,12 @@ v = rel_value_exp(sql, &rel_val, a, sql_sel, ek); if (!v) { + symbol *s = n->data.sym; sql->errstr[0] = 0; sql->session->status = status; - v = rel_value_exp(sql, &r, a, sql_sel, ek); + //v = rel_value_exp(sql, &r, a, sql_sel, ek); + s->token = SQL_COLUMN; + v = rel_column_exp(sql, &r, s, sql_sel); } if (!v || (v = rel_check_type(sql, &c->type, v, type_equal)) == NULL) { if (v) diff -r 68308d7e320a -r 3fc79277936b sql/src/server/sql_parser.mx --- a/sql/src/server/sql_parser.mx Tue Sep 07 10:49:13 2010 +0200 +++ b/sql/src/server/sql_parser.mx Tue Sep 07 11:03:36 2010 +0200 @@ -2760,15 +2760,15 @@ column '=' search_condition { dlist *l = L(); + append_symbol(l, $3 ); append_string(l, $1); - append_symbol(l, $3 ); $$ = _symbol_create_list( SQL_ASSIGN, l); } | column '=' sqlNULL { dlist *l = L(); + append_symbol(l, NULL ); append_string(l, $1); - append_symbol(l, NULL ); $$ = _symbol_create_list( SQL_ASSIGN, l); } ; _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list