Changeset: 6f08c3259fc1 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6f08c3259fc1
Added Files:
sql/test/Tests/table_function.stable.err
sql/test/Tests/table_function.stable.out
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/All
sql/test/Tests/systemfunctions.stable.out
sql/test/Tests/table_function.sql.src
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 default
diffs (truncated from 1009 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 || (exp_relname(nre) &&
exp_relname(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
@@ -1038,16 +1041,6 @@ snapshot_create_idx(sql_trans *tr, sql_i
}
static int
-new_persistent_dbat( sql_dbat *bat)
-{
- BAT *b = temp_descriptor(bat->dbid);
-
- bat->dbid = temp_create(b);
- bat_destroy(b);
- return LOG_OK;
-}
-
-static int
load_dbat(sql_dbat *bat, int bid)
{
BAT *b = quick_descriptor(bid);
@@ -1080,7 +1073,7 @@ create_del(sql_trans *tr, sql_table *t)
return load_dbat(bat, bid);
ok = LOG_ERR;
} else if (bat->dbid && !isTempTable(t)) {
- return new_persistent_dbat(bat);
+ return ok;
} else if (!bat->dbid) {
b = bat_new(TYPE_void, TYPE_oid, t->sz);
bat_set_access(b, BAT_READ);
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/All b/sql/test/Tests/All
--- a/sql/test/Tests/All
+++ b/sql/test/Tests/All
@@ -81,7 +81,7 @@ coalesce
round
rank
function_syntax
-table_functions
+table_function
procedure_syntax
order_by_simple_exp
order_by_complex_exp
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/table_function.sql.src
b/sql/test/Tests/table_function.sql.src
--- a/sql/test/Tests/table_function.sql.src
+++ b/sql/test/Tests/table_function.sql.src
@@ -1,1 +1,1 @@
-$RELSRCDIR/../tablefunctions.sql
+$RELSRCDIR/../table_function.sql
diff --git a/sql/test/Tests/table_function.stable.err
b/sql/test/Tests/table_function.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/Tests/table_function.stable.err
@@ -0,0 +1,35 @@
+stderr of test 'table_function` in directory 'sql/test` itself:
+
+
+# 18:57:51 >
+# 18:57:51 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=36910" "--set"
"mapi_usock=/var/tmp/mtest-26433/.s.monetdb.36910" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test"
"--set" "mal_listing=0"
+# 18:57:51 >
+
+# builtin opt gdk_dbpath =
/home/niels/scratch/rc-monetdb/Linux-x86_64/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
+# builtin opt gdk_vmtrim = yes
+# builtin opt monet_prompt = >
+# builtin opt monet_daemon = no
+# builtin opt mapi_port = 50000
+# builtin opt mapi_open = false
+# builtin opt mapi_autosense = false
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 36910
+# cmdline opt mapi_usock = /var/tmp/mtest-26433/.s.monetdb.36910
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbpath =
/home/niels/scratch/rc-monetdb/Linux-x86_64/var/MonetDB/mTests_sql_test
+# cmdline opt mal_listing = 0
+
+# 18:57:52 >
+# 18:57:52 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-26433" "--port=36910"
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list