Changeset: 5565adca4dd6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5565adca4dd6
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/jdbc/tests/Tests/Test_PSmetadata.stable.out
        sql/server/rel_dump.c
        sql/server/rel_select.c
        sql/test/ADT2006/Tests/bram.stable.out
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/pg_regress/Tests/strings_cast.stable.err
        sql/test/pg_regress/Tests/strings_cast.stable.out
Branch: default
Log Message:

merged with Jan2014

fixed out of bounds write.


diffs (truncated from 399 to 300 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
@@ -651,7 +651,8 @@ exp_bin(mvc *sql, sql_exp *e, stmt *left
                        }
                        ops = sa_list(sql->sa);
                        append(ops, r);
-                       append(ops, r2);
+                       if (r2)
+                               append(ops, r2);
                        r = stmt_list(sql->sa, ops);
                        s = stmt_genselect(sql->sa, l, r, e->f, sel);
                        if (s && is_anti(e))
diff --git a/sql/jdbc/tests/Tests/Test_PSmetadata.stable.out 
b/sql/jdbc/tests/Tests/Test_PSmetadata.stable.out
--- a/sql/jdbc/tests/Tests/Test_PSmetadata.stable.out
+++ b/sql/jdbc/tests/Tests/Test_PSmetadata.stable.out
@@ -53,7 +53,7 @@ Ready.
 0. false       false
 0. 6 columns:  6
 1.     mTests_sql_jdbc_tests
-       classname     java.lang.Integer
+       classname     java.lang.Short
        displaysize   8
        label         intnull
        name          intnull
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -323,12 +323,11 @@ rel_print_(mvc *sql, stream  *fout, sql_
        case op_table:
                print_indent(sql, fout, depth);
                mnstr_printf(fout, "table ");
-               /*
-               if (rel->l)
-                       rel_print_(sql, fout, rel->l, depth+1, refs);
-               */
+
                if (rel->r)
                        exp_print(sql, fout, rel->r, depth, 1, 0);
+               if (rel->l)
+                       rel_print_(sql, fout, rel->l, 0, refs);
                if (rel->exps) 
                        exps_print(sql, fout, rel->exps, depth, 1, 0);
                break;
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
@@ -3308,6 +3308,7 @@ rel_unop(mvc *sql, sql_rel **rel, symbol
                sql->errstr[0] = '\0';
                return rel_aggr(sql, rel, se, fs);
        }
+
        if (sname)
                s = mvc_bind_schema(sql, sname);
        if (!s)
@@ -3408,8 +3409,8 @@ rel_binop_(mvc *sql, sql_exp *l, sql_exp
                } else if (f->func->fix_scale == SCALE_MUL) {
                        l = exp_sum_scales(sql, f, l, r);
                } else if (f->func->fix_scale == DIGITS_ADD) {
-                       sql_arg *res = f->res->h->data;
-                       res->type.digits = (t1->digits && 
t2->digits)?t1->digits + t2->digits:0;
+                       sql_subtype *res = f->res->h->data;
+                       res->digits = (t1->digits && t2->digits)?t1->digits + 
t2->digits:0;
                }
                if (card == card_relation && l->card > CARD_ATOM) {
                        sql_subaggr *zero_or_one = sql_bind_aggr(sql->sa, 
sql->session->schema, "zero_or_one", exp_subtype(l));
@@ -3470,8 +3471,8 @@ rel_binop_(mvc *sql, sql_exp *l, sql_exp
                                } else if (f->func->fix_scale == SCALE_MUL) {
                                        l = exp_sum_scales(sql, f, l, r);
                                } else if (f->func->fix_scale == DIGITS_ADD) {
-                                       sql_arg *res = f->res->h->data;
-                                       res->type.digits = (t1->digits && 
t2->digits)?t1->digits + t2->digits:0;
+                                       sql_subtype *res = f->res->h->data;
+                                       res->digits = (t1->digits && 
t2->digits)?t1->digits + t2->digits:0;
                                }
                                return exp_binop(sql->sa, l, r, f);
                        }
diff --git a/sql/test/ADT2006/Tests/bram.stable.out 
b/sql/test/ADT2006/Tests/bram.stable.out
--- a/sql/test/ADT2006/Tests/bram.stable.out
+++ b/sql/test/ADT2006/Tests/bram.stable.out
@@ -476,7 +476,7 @@ Ready.
 % .L6, .L6 # table_name
 % L1,  average_height # name
 % char,        char # type
-% 6,   0 # length
+% 6,   4 # length
 [ "blonde",    "5'7\"" ]
 [ "brown",     "5'5\"" ]
 #SELECT name as victim FROM victim WHERE date_of_birth is null or 
date_of_birth = 'unknown';
diff --git a/sql/test/leaks/Tests/check1.stable.out 
b/sql/test/leaks/Tests/check1.stable.out
--- a/sql/test/leaks/Tests/check1.stable.out
+++ b/sql/test/leaks/Tests/check1.stable.out
@@ -41,11 +41,11 @@ Ready.
 [ "oid",       "bit",  40      ]
 [ "oid",       "bit",  40      ]
 [ "oid",       "bit",  286     ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bte",  3654    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bte",  3656    ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
@@ -99,15 +99,15 @@ Ready.
 [ "oid",       "int",  286     ]
 [ "oid",       "int",  286     ]
 [ "oid",       "int",  286     ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
 [ "oid",       "lng",  0       ]
 [ "oid",       "lng",  0       ]
 [ "oid",       "lng",  0       ]
@@ -188,11 +188,11 @@ Ready.
 [ "oid",       "str",  286     ]
 [ "oid",       "str",  286     ]
 [ "oid",       "str",  286     ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  3654    ]
-[ "oid",       "str",  3654    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  3656    ]
+[ "oid",       "str",  3656    ]
 [ "oid",       "timestamp",    0       ]
 #select 'transient', count(*) from bbp() as bbp where kind like 'tran%';
 % .L1, .L2 # table_name
diff --git a/sql/test/leaks/Tests/check2.stable.out 
b/sql/test/leaks/Tests/check2.stable.out
--- a/sql/test/leaks/Tests/check2.stable.out
+++ b/sql/test/leaks/Tests/check2.stable.out
@@ -41,11 +41,11 @@ Ready.
 [ "oid",       "bit",  40      ]
 [ "oid",       "bit",  40      ]
 [ "oid",       "bit",  286     ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bte",  3654    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bte",  3656    ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
@@ -99,15 +99,15 @@ Ready.
 [ "oid",       "int",  286     ]
 [ "oid",       "int",  286     ]
 [ "oid",       "int",  286     ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
 [ "oid",       "lng",  0       ]
 [ "oid",       "lng",  0       ]
 [ "oid",       "lng",  0       ]
@@ -188,11 +188,11 @@ Ready.
 [ "oid",       "str",  286     ]
 [ "oid",       "str",  286     ]
 [ "oid",       "str",  286     ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  3654    ]
-[ "oid",       "str",  3654    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  3656    ]
+[ "oid",       "str",  3656    ]
 [ "oid",       "timestamp",    0       ]
 #select 'transient', count(*) from bbp() as bbp where kind like 'tran%';
 % .L1, .L2 # table_name
diff --git a/sql/test/leaks/Tests/check3.stable.out 
b/sql/test/leaks/Tests/check3.stable.out
--- a/sql/test/leaks/Tests/check3.stable.out
+++ b/sql/test/leaks/Tests/check3.stable.out
@@ -41,11 +41,11 @@ Ready.
 [ "oid",       "bit",  41      ]
 [ "oid",       "bit",  41      ]
 [ "oid",       "bit",  288     ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bte",  3654    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bte",  3656    ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
@@ -99,15 +99,15 @@ Ready.
 [ "oid",       "int",  288     ]
 [ "oid",       "int",  288     ]
 [ "oid",       "int",  288     ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  1307    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
-[ "oid",       "int",  3654    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  1308    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
+[ "oid",       "int",  3656    ]
 [ "oid",       "lng",  0       ]
 [ "oid",       "lng",  0       ]
 [ "oid",       "lng",  0       ]
@@ -188,11 +188,11 @@ Ready.
 [ "oid",       "str",  288     ]
 [ "oid",       "str",  288     ]
 [ "oid",       "str",  288     ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  1307    ]
-[ "oid",       "str",  3654    ]
-[ "oid",       "str",  3654    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  1308    ]
+[ "oid",       "str",  3656    ]
+[ "oid",       "str",  3656    ]
 [ "oid",       "timestamp",    0       ]
 #select 'transient', count(*) from bbp() as bbp where kind like 'tran%';
 % .L1, .L2 # table_name
diff --git a/sql/test/leaks/Tests/check4.stable.out 
b/sql/test/leaks/Tests/check4.stable.out
--- a/sql/test/leaks/Tests/check4.stable.out
+++ b/sql/test/leaks/Tests/check4.stable.out
@@ -41,11 +41,11 @@ Ready.
 [ "oid",       "bit",  42      ]
 [ "oid",       "bit",  42      ]
 [ "oid",       "bit",  290     ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bit",  1307    ]
-[ "oid",       "bte",  3654    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bit",  1308    ]
+[ "oid",       "bte",  3656    ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
@@ -99,15 +99,15 @@ Ready.
 [ "oid",       "int",  290     ]
 [ "oid",       "int",  290     ]
 [ "oid",       "int",  290     ]
-[ "oid",       "int",  1307    ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to