Changeset: 6f41cb33523f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6f41cb33523f
Modified Files:
        sql/src/server/rel_updates.mx
        sql/src/server/sql_parser.mx
Branch: Jun2010
Log Message:

small change of order of nodes in symbol tree


diffs (56 lines):

diff -r f969c8bc9c3c -r 6f41cb33523f sql/src/server/rel_updates.mx
--- a/sql/src/server/rel_updates.mx     Tue Aug 31 13:37:48 2010 +0200
+++ b/sql/src/server/rel_updates.mx     Wed Sep 01 09:54:02 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 f969c8bc9c3c -r 6f41cb33523f sql/src/server/sql_parser.mx
--- a/sql/src/server/sql_parser.mx      Tue Aug 31 13:37:48 2010 +0200
+++ b/sql/src/server/sql_parser.mx      Wed Sep 01 09:54:02 2010 +0200
@@ -2761,15 +2761,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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to