Changeset: 282d8570f9ed for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=282d8570f9ed
Modified Files:
        java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
        sql/backends/monet5/sql.mx
        sql/server/rel_optimizer.c
        sql/storage/bat/bat_storage.c
        
sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
        sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.sql
        
sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.sql
        
sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.stable.out
        sql/test/BugTracker-2012/Tests/mal_syntax_error.Bug-2949.sql
        sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err
        sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        
sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
        sql/test/Tests/systemfunctions.stable.out
        sql/test/Tests/trace.stable.out
        sql/test/leaks/Tests/check0.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/leaks/Tests/drop3.stable.out
        sql/test/leaks/Tests/select1.stable.out
        sql/test/leaks/Tests/select2.stable.out
        sql/test/leaks/Tests/temp1.stable.out
        sql/test/leaks/Tests/temp2.stable.out
        sql/test/leaks/Tests/temp3.stable.out
        sql/test/mapi/Tests/php_monetdb.stable.out
Branch: default
Log Message:

merge with Feb2013


diffs (truncated from 854 to 300 lines):

diff --git a/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java 
b/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
--- a/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
+++ b/java/src/nl/cwi/monetdb/jdbc/MonetPreparedStatement.java
@@ -973,12 +973,15 @@ public class MonetPreparedStatement
 
                // Reduction is possible via rounding; do it and we're good to 
go.
                x = x.round(new MathContext(targetScale, RoundingMode.HALF_UP));
-               x = x.stripTrailingZeros();
 
                // MonetDB doesn't like leading 0's, since it counts them as 
part of
                // the precision, so let's strip them off. (But be careful not 
to do
-               // this to the exact number "0".)
+               // this to the exact number "0".)  Also strip off trailing
+               // numbers that are inherent to the double representation.
                String xStr = x.toPlainString();
+               int dot = xStr.indexOf(".");
+               if (dot != 0)
+                       xStr = xStr.substring(0, Math.min(xStr.length(), dot + 
1 + scale[i]));
                while (xStr.startsWith("0") && xStr.length() > 1)
                        xStr = xStr.substring(1);
                setValue(idx, xStr);
diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx
--- a/sql/backends/monet5/sql.mx
+++ b/sql/backends/monet5/sql.mx
@@ -7697,6 +7697,8 @@ RAstatement(Client cntxt, MalBlkPtr mb, 
        sql_rel *rel;
        list *refs;
 
+       if (msg)
+               return msg;
        if (!m->sa)
                m->sa = sa_create();
        refs = sa_list(m->sa);
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -4727,7 +4727,7 @@ rel_use_index(int *changes, mvc *sql, sq
                                        ((left && !rel_find_exp(rel->l, e->l)) 
||
                                        (!left && !rel_find_exp(rel->r, 
e->l)))) 
                                        nre = e->l;
-                               single_table = (!re || 
!exps_match_col_exps(nre, re));
+                               single_table = (!re || strcmp(exp_relname(nre), 
exp_relname(re)) == 0);
                                re = nre;
                        }
                        if (single_table) { /* add PROP_HASHCOL to all column 
exps */
@@ -5312,8 +5312,8 @@ rel_semijoin_use_fk(int *changes, mvc *s
                rel->exps = NULL;
                append(rels, rel->l);
                append(rels, rel->r);
-
                (void) find_fk( sql, rels, exps);
+
                rel->exps = exps;
        }
        return rel;
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -547,6 +547,9 @@ append_col(sql_trans *tr, sql_column *c,
                bat = c->data;
        /* appends only write */
        bat->wtime = c->base.wtime = c->t->base.wtime = c->t->s->base.wtime = 
tr->wtime = tr->wstime;
+       /* inserts are ordered with the current delta implementation */
+       /* therefor mark appends as reads */
+       c->t->s->base.rtime = c->t->base.rtime = tr->stime;
        if (tpe == TYPE_bat)
                delta_append_bat(bat, i);
        else
diff --git 
a/sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
 
b/sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
--- 
a/sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
+++ 
b/sql/test/BugTracker-2012/Tests/aggregate_vs_positional_column_crash.Bug-3085.stable.out
@@ -28,13 +28,13 @@ Ready.
 % L2,  L1 # name
 % tinyint,     wrd # type
 % 1,   2 # length
-[ 1,   39      ]
+[ 1,   38      ]
 #SELECT (SELECT count(*) FROM tables), 1;
 % .L1, .L1 # table_name
 % L1,  single_value # name
 % wrd, tinyint # type
 % 2,   1 # length
-[ 39,  1       ]
+[ 38,  1       ]
 
 # 21:48:51 >  
 # 21:48:51 >  "Done."
diff --git 
a/sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.sql 
b/sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.sql
--- a/sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.sql
+++ b/sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.sql
@@ -56,7 +56,7 @@ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
        ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
?, ?,
        ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 
?);        
 
-EXEC 0('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
+exec **('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
'', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
'', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
'', '',
diff --git 
a/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.sql 
b/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.sql
--- 
a/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.sql
+++ 
b/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.sql
@@ -33,7 +33,7 @@ SELECT TR.x, TR.z, comp
 FROM 
 (SELECT TR1.u as x, TR1.v as y, TR2.v as z, TR1.r as rxy, TR2.r as ryz
            FROM
-               RX as TR1 JOIN R as TR2 
+               RX as TR1 JOIN RX as TR2 
                    ON (TR1.v = TR2.u AND TR1.u <> TR2.v)
        ) as TR                         
            JOIN 
diff --git 
a/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.stable.out
 
b/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.stable.out
--- 
a/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.stable.out
+++ 
b/sql/test/BugTracker-2012/Tests/join_over_multitable_using_index.Bug-3181.stable.out
@@ -61,8 +61,12 @@ Ready.
 #      ON (TR.rxy = s AND TR.ryz = t);
 % sys.tr,      sys.tr, sys.trans # table_name
 % x,   z,      comp # name
-% int, varchar,        int # type
-% 1,   0,      1 # length
+% int, int,    int # type
+% 1,   1,      3 # length
+[ 0,   2,      255     ]
+[ 0,   3,      31      ]
+[ 0,   4,      31      ]
+[ 3,   4,      255     ]
 #Drop index trans_st_idx;
 #Drop table trans;
 #Drop table rx;
diff --git a/sql/test/BugTracker-2012/Tests/mal_syntax_error.Bug-2949.sql 
b/sql/test/BugTracker-2012/Tests/mal_syntax_error.Bug-2949.sql
--- a/sql/test/BugTracker-2012/Tests/mal_syntax_error.Bug-2949.sql
+++ b/sql/test/BugTracker-2012/Tests/mal_syntax_error.Bug-2949.sql
@@ -15,3 +15,4 @@ END;
 select * from refine();
 
 drop function refine;
+drop table r;
diff --git 
a/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err 
b/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err
--- a/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err
+++ b/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err
@@ -30,9 +30,9 @@ stderr of test 'predicate_select.Bug-309
 # 18:53:13 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=niels" 
"--port=32323"
 # 18:53:13 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-30433/.s.monetdb.30902
+MAPI  = (monetdb) /var/tmp/mtest-21655/.s.monetdb.39354
 QUERY = select * from tables where name;
-ERROR = !conversion of string 'r' to type bit failed.
+ERROR = !conversion of string 'optimizers' to type bit failed.
 
 # 18:53:13 >  
 # 18:53:13 >  "Done."
diff --git 
a/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out 
b/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
--- a/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
+++ b/sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
@@ -61,11 +61,11 @@ Ready.
 [ 5595,        "optimizers",   2000,   "create view sys.optimizers as select * 
from sys.optimizers();",        1,      true,   0,      false,  0       ]
 [ 5605,        "environment",  2000,   "create view sys.environment as select 
* from sys.environment();",      1,      true,   0,      false,  0       ]
 [ 5647,        "queue",        2000,   "create view sys.queue as select * from 
sys.queue();",  1,      true,   0,      false,  0       ]
-[ 6128,        "storage",      2000,   "create view sys.storage as select * 
from sys.storage();",      1,      true,   0,      false,  0       ]
-[ 6140,        "storagemodelinput",    2000,   NULL,   0,      true,   0,      
false,  0       ]
-[ 6183,        "storagemodel", 2000,   "create view sys.storagemodel as select 
* from sys.storagemodel();",    1,      true,   0,      false,  0       ]
-[ 6192,        "tablestoragemodel",    2000,   "-- A summary of the table 
storage requirement is is available as a table view.\n-- The auxillary column 
denotes the maximum space if all non-sorted columns\n-- would be augmented with 
a hash (rare situation)\ncreate view sys.tablestoragemodel\nas select 
\"schema\",\"table\",max(count) as \"count\",\n\tsum(columnsize) as 
columnsize,\n\tsum(heapsize) as heapsize,\n\tsum(indices) as 
indices,\n\tsum(case when sorted = false then 8 * count else 0 end) as 
auxillary\nfrom sys.storagemodel() group by \"schema\",\"table\";",      1,     
 true,   0,      false,  0       ]
-[ 6214,        "systemfunctions",      2000,   NULL,   0,      true,   0,      
false,  0       ]
+[ 6160,        "storage",      2000,   "create view sys.storage as select * 
from sys.storage();",      1,      true,   0,      false,  0       ]
+[ 6172,        "storagemodelinput",    2000,   NULL,   0,      true,   0,      
false,  0       ]
+[ 6215,        "storagemodel", 2000,   "create view sys.storagemodel as select 
* from sys.storagemodel();",    1,      true,   0,      false,  0       ]
+[ 6224,        "tablestoragemodel",    2000,   "-- A summary of the table 
storage requirement is is available as a table view.\n-- The auxillary column 
denotes the maximum space if all non-sorted columns\n-- would be augmented with 
a hash (rare situation)\ncreate view sys.tablestoragemodel\nas select 
\"schema\",\"table\",max(count) as \"count\",\n\tsum(columnsize) as 
columnsize,\n\tsum(heapsize) as heapsize,\n\tsum(indices) as 
indices,\n\tsum(case when sorted = false then 8 * count else 0 end) as 
auxillary\nfrom sys.storagemodel() group by \"schema\",\"table\";",      1,     
 true,   0,      false,  0       ]
+[ 6246,        "systemfunctions",      2000,   NULL,   0,      true,   0,      
false,  0       ]
 
 # 18:53:13 >  
 # 18:53:13 >  "Done."
diff --git a/sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out 
b/sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
--- a/sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
+++ b/sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
@@ -42,7 +42,7 @@ Ready.
 | | | ) [ L1 ]                                                                 
                                    |
 | | ) [  ] [ sys.sum no nil (L1) as L1 ]                                       
                                    |
 | ) [ L1 NOT NULL as L1.L1 ]                                                   
                                                                                
                                                                                
                                                                     |
-+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++--------------------------------------------------------------------------------------+
 20 rows
 
 Operation successful
diff --git 
a/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
 
b/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
--- 
a/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
+++ 
b/sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
@@ -35,7 +35,7 @@ stdout of test 'set_sql_debug_64__breaki
 % name,        fullname,       default_schema # name
 % varchar,     varchar,        int # type
 % 9,   10,     4 # length
-[ "skyserver", "sky server",   7663    ]
+[ "skyserver", "sky server",   7720    ]
 #alter user "skyserver" set schema "sys";
 #drop schema sky;
 #drop user skyserver;
diff --git a/sql/test/Tests/systemfunctions.stable.out 
b/sql/test/Tests/systemfunctions.stable.out
--- a/sql/test/Tests/systemfunctions.stable.out
+++ b/sql/test/Tests/systemfunctions.stable.out
@@ -229,6 +229,23 @@ Ready.
 [ "sys",       "isempty",      1,      "geometry",     ""      ]
 [ "sys",       "issimple",     0,      "boolean",      "create function 
issimple(g geometry) returns boolean external name geom.\"IsSimple\";" ]
 [ "sys",       "issimple",     1,      "geometry",     ""      ]
+[ "sys",       "json_filter",  0,      "json", "-- access the top level key by 
name, return its value\ncreate function json_filter(js json, name 
string)\nreturns json external name json.filter;"     ]
+[ "sys",       "json_filter",  1,      "json", ""      ]
+[ "sys",       "json_filter",  2,      "clob", ""      ]
+[ "sys",       "json_filter_all",      0,      "json", "create function 
json_filter_all(js json, name string)\nreturns json external name 
json.filterall;"     ]
+[ "sys",       "json_filter_all",      1,      "json", ""      ]
+[ "sys",       "json_filter_all",      2,      "clob", ""      ]
+[ "sys",       "json_isvalid", 0,      "boolean",      "-- test string for 
JSON compliancy\ncreate function json_isvalid(js string)\nreturns bool external 
name json.isvalid;" ]
+[ "sys",       "json_isvalid", 1,      "clob", ""      ]
+[ "sys",       "json_isvalidarray",    0,      "boolean",      "create 
function json_isvalidarray(js string)\nreturns bool external name 
json.isvalidarray;"   ]
+[ "sys",       "json_isvalidarray",    1,      "clob", ""      ]
+[ "sys",       "json_isvalidobject",   0,      "boolean",      "create 
function json_isvalidobject(js string)\nreturns bool external name 
json.isvalidobject;" ]
+[ "sys",       "json_isvalidobject",   1,      "clob", ""      ]
+[ "sys",       "json_length",  0,      "int",  "-- return the number of 
primary components\ncreate function json_length(js json)\nreturns integer 
external name json.length;"  ]
+[ "sys",       "json_length",  1,      "json", ""      ]
+[ "sys",       "json_path",    0,      "json", "-- a simple path 
extractor\ncreate function json_path(js json, e string)\nreturns json external 
name json.path;"       ]
+[ "sys",       "json_path",    1,      "json", ""      ]
+[ "sys",       "json_path",    2,      "clob", ""      ]
 [ "sys",       "length",       0,      "double",       "create function 
length(g geometry) returns float external name geom.\"Length\";"       ]
 [ "sys",       "length",       1,      "geometry",     ""      ]
 [ "sys",       "like", 0,      "clob", "create filter function \"like\"(val 
string, pat string, esc string) external name algebra.likesubselect;"      ]
diff --git a/sql/test/Tests/trace.stable.out b/sql/test/Tests/trace.stable.out
--- a/sql/test/Tests/trace.stable.out
+++ b/sql/test/Tests/trace.stable.out
@@ -36,7 +36,7 @@ Ready.
 % L1 # name
 % wrd # type
 % 2 # length
-[ 42   ]
+[ 43   ]
 #SELECT COUNT(*) FROM tracelog();
 % .L1 # table_name
 % L1 # name
diff --git a/sql/test/leaks/Tests/check0.stable.out 
b/sql/test/leaks/Tests/check0.stable.out
--- a/sql/test/leaks/Tests/check0.stable.out
+++ b/sql/test/leaks/Tests/check0.stable.out
@@ -54,26 +54,26 @@ Ready.
 [ "oid",       "int",  8       ]
 [ "oid",       "int",  8       ]
 [ "oid",       "int",  135     ]
-[ "oid",       "int",  1222    ]
-[ "oid",       "int",  3324    ]
-[ "oid",       "int",  3324    ]
-[ "oid",       "int",  3324    ]
-[ "oid",       "int",  3324    ]
-[ "oid",       "int",  3324    ]
+[ "oid",       "int",  1229    ]
+[ "oid",       "int",  3341    ]
+[ "oid",       "int",  3341    ]
+[ "oid",       "int",  3341    ]
+[ "oid",       "int",  3341    ]
+[ "oid",       "int",  3341    ]
 [ "oid",       "lng",  1       ]
 [ "oid",       "lng",  2       ]
 [ "oid",       "str",  1       ]
 [ "oid",       "str",  1       ]
 [ "oid",       "str",  1       ]
 [ "oid",       "str",  135     ]
-[ "oid",       "str",  3324    ]
-[ "oid",       "str",  3324    ]
+[ "oid",       "str",  3341    ]
+[ "oid",       "str",  3341    ]
 #select 'transient', count(*) from bbp() as bbp where kind like 'tran%';
 % .L1, .L2 # table_name
 % L1,  L2 # name
 % char,        wrd # type
 % 9,   3 # length
-[ "transient", 367     ]
+[ "transient", 359     ]
 #select 'persistent', count(*) from bbp() as bbp where kind like 'pers%';
 % .L1, .L2 # table_name
 % L1,  L2 # name
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
@@ -34,8 +34,8 @@ Ready.
 [ "oid",       "bit",  69      ]
 [ "oid",       "bit",  69      ]
 [ "oid",       "bit",  393     ]
-[ "oid",       "bit",  1222    ]
-[ "oid",       "bit",  1222    ]
+[ "oid",       "bit",  1229    ]
+[ "oid",       "bit",  1229    ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
 [ "oid",       "int",  0       ]
@@ -72,12 +72,12 @@ Ready.
 [ "oid",       "int",  19      ]
 [ "oid",       "int",  19      ]
 [ "oid",       "int",  19      ]
-[ "oid",       "int",  42      ]
-[ "oid",       "int",  42      ]
-[ "oid",       "int",  42      ]
-[ "oid",       "int",  42      ]
-[ "oid",       "int",  42      ]
-[ "oid",       "int",  42      ]
+[ "oid",       "int",  43      ]
+[ "oid",       "int",  43      ]
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to