Changeset: 892f00f42d67 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=892f00f42d67
Modified Files:
        
Branch: Aug2011
Log Message:

Merge with Apr2011 branch.


diffs (109 lines):

diff --git a/sql/server/sql_semantic.c b/sql/server/sql_semantic.c
--- a/sql/server/sql_semantic.c
+++ b/sql/server/sql_semantic.c
@@ -751,6 +751,9 @@
                        return NULL;
                if (b) {
                        char *o = b;
+                       b = strconcat(b,".");
+                       _DELETE(o);
+                       o = b;
                        b = strconcat(b,s);
                        _DELETE(o);
                        _DELETE(s);
@@ -775,9 +778,11 @@
 
                len = snprintf( buf+len, BUFSIZ-len, "%s(", op); 
                for (; ops; ops = ops->next) {
-                       char *tmp;
+                       char *tmp = symbol2string(sql, ops->data.sym, err);
+                       if (tmp == NULL)
+                               return NULL;
                        len = snprintf( buf+len, BUFSIZ-len, "%s%s", 
-                               tmp = symbol2string(sql, ops->data.sym, err), 
+                               tmp, 
                                (ops->next)?",":"");
                        _DELETE(tmp);
                }
@@ -786,8 +791,16 @@
        case SQL_BINOP: {
                dnode *lst = se->data.lval->h;
                char *op = qname_fname(lst->data.lval);
-               char *l = symbol2string(sql, lst->next->data.sym, err);
-               char *r = symbol2string(sql, lst->next->next->data.sym, err);
+               char *l;
+               char *r;
+               l = symbol2string(sql, lst->next->data.sym, err);
+               if (l == NULL)
+                       return NULL;
+               r = symbol2string(sql, lst->next->next->data.sym, err);
+               if (r == NULL) {
+                       _DELETE(l);
+                       return NULL;
+               }
                len = snprintf( buf+len, BUFSIZ-len, "%s(%s,%s)", op, l, r); 
                _DELETE(l);
                _DELETE(r);
@@ -801,6 +814,8 @@
                dnode *lst = se->data.lval->h;
                char *op = qname_fname(lst->data.lval);
                char *l = symbol2string(sql, lst->next->data.sym, err);
+               if (l == NULL)
+                       return NULL;
                len = snprintf( buf+len, BUFSIZ-len, "%s(%s)", op, l); 
                _DELETE(l);
                break;
@@ -834,15 +849,25 @@
                        atom *a = sql_bind_arg(sql, l->h->data.i_val);
                        return atom2sql(a);
                } else {
-                       *err = dlist2string(sql, l, err);
+                       char *e = dlist2string(sql, l, err);
+                       if (e)
+                               *err = e;
                }
                return NULL;
        }       
        case SQL_CAST: {
                dlist *dl = se->data.lval;
-               char *val = symbol2string(sql, dl->h->data.sym, err);
-               char *tpe = subtype2string(&dl->h->next->data.typeval);
-       
+               char *val;
+               char *tpe;
+
+               val = symbol2string(sql, dl->h->data.sym, err);
+               if (val == NULL)
+                       return NULL;
+               tpe = subtype2string(&dl->h->next->data.typeval);
+               if (tpe == NULL) {
+                       _DELETE(val);
+                       return NULL;
+               }
                len = snprintf( buf+len, BUFSIZ-len, "cast ( %s as %s )",
                                val, tpe);
                _DELETE(val);
diff --git a/sql/test/BugTracker-2011/Tests/All 
b/sql/test/BugTracker-2011/Tests/All
--- a/sql/test/BugTracker-2011/Tests/All
+++ b/sql/test/BugTracker-2011/Tests/All
@@ -24,3 +24,5 @@
 subquery_in_where.Bug-2823
 func_iter_vs_bulk.Bug-2826
 UDF_in_schema.Bug-2817
+with-scope.Bug-2058
+blob-update-crash.Bug-2832
diff --git 
a/sql/test/BugTracker-2011/Tests/alter_incorrect_syntax_crash.Bug-2795.stable.err
 
b/sql/test/BugTracker-2011/Tests/alter_incorrect_syntax_crash.Bug-2795.stable.err
--- 
a/sql/test/BugTracker-2011/Tests/alter_incorrect_syntax_crash.Bug-2795.stable.err
+++ 
b/sql/test/BugTracker-2011/Tests/alter_incorrect_syntax_crash.Bug-2795.stable.err
@@ -32,9 +32,9 @@
 # 12:32:37 >  mclient -lsql -ftest -i -e --host=alf --port=38195 
 # 12:32:37 >  
 
-MAPI  = monetdb@alf:38195
+MAPI  = monetdb@ottar:34692
 QUERY = alter table t2795 add r float default sqrt(power(t2795.x, 2) + 
power(t2795.y, 2));
-ERROR = !syntax error, unexpected sqlNULL in: "select sqrt(sql_add(power((null"
+ERROR = !incorrect default value 't2795.x'
 
 # 12:32:37 >  
 # 12:32:37 >  Done.
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to