Changeset: 95c9b5114419 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=95c9b5114419
Added Files:
sql/test/BugTracker-2014/Tests/indices.Bug-3428.sql
Modified Files:
clients/odbc/driver/ODBCUtil.c
clients/odbc/driver/SQLGetInfo.c
sql/backends/monet5/sql.c
sql/server/sql_scan.c
sql/storage/bat/bat_storage.c
sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.err
sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.out
sql/test/BugTracker-2014/Tests/sample-crash.Bug-3429.stable.err
sql/test/Tests/identifiers.stable.err
sql/test/Tests/identifiers.stable.out
sql/test/bugs/Tests/object_name-bug-sf-985242.stable.out
sql/test/identifiers.sql
Branch: default
Log Message:
Merge with Jan2014 branch.
diffs (truncated from 373 to 300 lines):
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -335,7 +335,7 @@ static struct scalars {
{"sin", 1, "\"sin\"(\1)", },
{"sqrt", 1, "\"sqrt\"(\1)", },
{"tan", 1, "\"tan\"(\1)", },
- /* {"truncate", 2, "\"truncate\"(\1,\2)", }, */
+ {"truncate", 2, "\"ms_trunc\"(\1,\2)", },
{"current_date", 0, "\"current_date\"()", },
{"current_time", 0, "\"current_time\"()", },
{"current_time", 1, NULL, },
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -519,7 +519,7 @@ SQLGetInfo_(ODBCDbc *dbc,
SQL_FN_NUM_SIGN |
SQL_FN_NUM_SIN |
SQL_FN_NUM_SQRT |
- /* SQL_FN_NUM_TRUNCATE | */
+ SQL_FN_NUM_TRUNCATE |
SQL_FN_NUM_TAN;
len = sizeof(SQLUINTEGER);
break;
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -462,6 +462,8 @@ create_table_or_view(mvc *sql, char *sna
sql->sa = sa_create();
r = rel_parse(sql, nt->query, m_deps);
+ if (r)
+ r = rel_optimizer(sql, r);
if (r) {
stmt *sqs = rel_bin(sql, r);
list *view_id_l = stmt_list_dependencies(sql->sa, sqs,
VIEW_DEPENDENCY);
@@ -940,6 +942,8 @@ create_trigger(mvc *sql, char *sname, ch
sql->sa = sa_create();
buf = sa_strdup(sql->sa, query);
r = rel_parse(sql, buf, m_deps);
+ if (r)
+ r = rel_optimizer(sql, r);
/* TODO use relational part to find dependencies */
if (r) {
stmt *sqs = rel_bin(sql, r);
diff --git a/sql/server/sql_scan.c b/sql/server/sql_scan.c
--- a/sql/server/sql_scan.c
+++ b/sql/server/sql_scan.c
@@ -928,11 +928,10 @@ valid_ident(char *s, char *dst)
return 0;
/* do unescaping in the loop */
while (*s && (*s != '"' || escaped)) {
- if (*s == '\\' || (*s == '"' && s[1] == '"')) {
+ if (*s == '"' && s[1] == '"') {
escaped = !escaped;
- if (!escaped) {
+ if (!escaped)
dst[p++] = *s;
- }
} else if (*s == '"' && escaped) {
escaped = 0;
dst[p++] = *s;
@@ -940,10 +939,14 @@ valid_ident(char *s, char *dst)
escaped = 0;
dst[p++] = *s;
}
+ //if (*s == '\\')
+ //dst[p++] = *s;
s++;
if (p >= 1024)
return 0;
}
+ if (*s)
+ return 0;
dst[p] = '\0';
return 1;
}
@@ -987,7 +990,7 @@ sql_get_next_token(YYSTYPE *yylval, void
yylval->sval = sa_strndup(c->sa, yylval->sval,
lc->yycur-lc->yysval);
else if (token == STRING) {
char quote = *yylval->sval;
- char *str = sa_alloc( c->sa, (lc->yycur-lc->yysval-2)*2 +1 );
+ char *str = sa_alloc( c->sa, (lc->yycur-lc->yysval-2)*2 + 1 );
assert(quote == '"' || quote == '\'');
lc->rs->buf[lc->rs->pos+lc->yycur- 1] = 0;
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
@@ -448,7 +448,12 @@ delta_append_bat( sql_delta *bat, BAT *i
bat_destroy(b);
b = temp_descriptor(bat->ibid);
}
- BATappend(b, i, TRUE);
+ if (isVIEW(i) && b->batCacheid == ABS(VIEWtparent(i))) {
+ BAT *ic = BATcopy(i, TYPE_void, i->ttype, TRUE);
+ BATappend(b, ic, TRUE);
+ bat_destroy(ic);
+ } else
+ BATappend(b, i, TRUE);
assert(BUNlast(b) > b->batInserted);
bat_destroy(b);
}
diff --git
a/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.err
b/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.err
--- a/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.err
+++ b/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.err
@@ -1,1 +1,35 @@
-Something other than a crash.
+stderr of test 'create-view-crash.Bug-3414` in directory
'sql/test/BugTracker-2014` itself:
+
+
+# 19:54:27 >
+# 19:54:27 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=31123" "--set"
"mapi_usock=/var/tmp/mtest-27196/.s.monetdb.31123" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2014"
"--set" "mal_listing=0"
+# 19:54:27 >
+
+# builtin opt gdk_dbpath =
/home/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
+# builtin opt gdk_vmtrim = no
+# 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 = 31123
+# cmdline opt mapi_usock = /var/tmp/mtest-27196/.s.monetdb.31123
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbpath =
/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2014
+# cmdline opt mal_listing = 0
+
+# 19:54:27 >
+# 19:54:27 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-27196" "--port=31123"
+# 19:54:27 >
+
+
+# 19:54:28 >
+# 19:54:28 > "Done."
+# 19:54:28 >
+
diff --git
a/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.out
b/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.out
--- a/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.out
+++ b/sql/test/BugTracker-2014/Tests/create-view-crash.Bug-3414.stable.out
@@ -1,1 +1,90 @@
-Something other than a crash.
+stdout of test 'create-view-crash.Bug-3414` in directory
'sql/test/BugTracker-2014` itself:
+
+
+# 19:54:27 >
+# 19:54:27 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=31123" "--set"
"mapi_usock=/var/tmp/mtest-27196/.s.monetdb.31123" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test_BugTracker-2014"
"--set" "mal_listing=0"
+# 19:54:27 >
+
+# MonetDB 5 server v11.17.2
+# This is an unreleased version
+# Serving database 'mTests_sql_test_BugTracker-2014', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 3.777 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2014 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on
mapi:monetdb://localhost.localdomain:31123/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-27196/.s.monetdb.31123
+# MonetDB/GIS module loaded
+# MonetDB/JAQL module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# loading sql script: 09_like.sql
+# loading sql script: 10_math.sql
+# loading sql script: 11_times.sql
+# loading sql script: 12_url.sql
+# loading sql script: 13_date.sql
+# loading sql script: 14_inet.sql
+# loading sql script: 15_querylog.sql
+# loading sql script: 16_tracelog.sql
+# loading sql script: 17_compress.sql
+# loading sql script: 18_dictionary.sql
+# loading sql script: 19_cluster.sql
+# loading sql script: 20_vacuum.sql
+# loading sql script: 21_dependency_functions.sql
+# loading sql script: 22_clients.sql
+# loading sql script: 23_skyserver.sql
+# loading sql script: 24_zorder.sql
+# loading sql script: 25_debug.sql
+# loading sql script: 26_sysmon.sql
+# loading sql script: 39_analytics.sql
+# loading sql script: 40_geom.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 99_system.sql
+
+# 19:54:27 >
+# 19:54:27 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-27196" "--port=31123"
+# 19:54:27 >
+
+#START TRANSACTION;
+#CREATE TABLE sys.v_models_that_satisfy_criteria_dup (
+# set_number int,
+# set_corr_coef real,
+# last_crit int,
+# crit_number int,
+# traffic_min real,
+# traffic_max real,
+# crit_corr_coef real,
+# min_lift real,
+# min_previous_precision real,
+# target_value varchar(1024),
+# model_number int,
+# number_of_scenarios bigint,
+# previous_precision real,
+# new_precision real,
+# lift real,
+# total_traffic real,
+# corr real,
+# corrb real,
+# expr1 real,
+# expr2 real,
+# expr3 real
+#);
+#CREATE VIEW v_models_that_satisfy_criteria_min_set_dup AS
+#SELECT a.*
+# FROM v_models_that_satisfy_criteria_dup AS a
+# WHERE a.set_number = (
+# SELECT MIN(b.set_number)
+# FROM v_models_that_satisfy_criteria_dup AS b
+# WHERE b.model_number = a.model_number
+# );
+#ROLLBACK;
+
+# 19:54:28 >
+# 19:54:28 > "Done."
+# 19:54:28 >
+
diff --git a/sql/test/BugTracker-2014/Tests/indices.Bug-3428.sql
b/sql/test/BugTracker-2014/Tests/indices.Bug-3428.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2014/Tests/indices.Bug-3428.sql
@@ -0,0 +1,19 @@
+START TRANSACTION;
+
+CREATE TABLE TEST1 (ONE int, TWO INT) ;
+CREATE TABLE TEST2 (ONE int, TWO INT) ;
+INSERT INTO TEST1 VALUES (1, 1) ;
+INSERT INTO TEST2 VALUES (1, 1) ;
+
+-- all is well
+SELECT COUNT(*) FROM TEST1 JOIN TEST2 USING(ONE, TWO);
+
+CREATE INDEX ONEDEX ON TEST1 (ONE, TWO);
+-- no results?
+SELECT COUNT(*) FROM TEST1 JOIN TEST2 USING(ONE, TWO);
+
+DROP INDEX ONEDEX;
+-- all is well again
+SELECT COUNT(*) FROM TEST1 JOIN TEST2 USING(ONE, TWO);
+
+ROLLBACK;
diff --git a/sql/test/BugTracker-2014/Tests/sample-crash.Bug-3429.stable.err
b/sql/test/BugTracker-2014/Tests/sample-crash.Bug-3429.stable.err
--- a/sql/test/BugTracker-2014/Tests/sample-crash.Bug-3429.stable.err
+++ b/sql/test/BugTracker-2014/Tests/sample-crash.Bug-3429.stable.err
@@ -28,8 +28,6 @@ stderr of test 'sample-crash.Bug-3429` i
# 20:54:49 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-31548" "--port=33290"
# 20:54:49 >
-MAPI = (monetdb) /var/tmp/mtest-31984/.s.monetdb.34383
-QUERY = rollback;
diff --git a/sql/test/Tests/identifiers.stable.err
b/sql/test/Tests/identifiers.stable.err
--- a/sql/test/Tests/identifiers.stable.err
+++ b/sql/test/Tests/identifiers.stable.err
@@ -1,20 +1,44 @@
stderr of test 'identifiers` in directory 'sql/test` itself:
-# 22:26:32 >
-# 22:26:32 > Mtimeout -timeout 180 Mserver
"--config=/ufs/fabian/scratch/monetdb/current/program-x86_64/etc/MonetDB.conf"
--debug=10 --set
"monet_mod_path=/ufs/fabian/scratch/monetdb/current/program-x86_64/lib/MonetDB:/ufs/fabian/scratch/monetdb/current/program-x86_64/lib/bin"
--set
"gdk_dbfarm=/ufs/fabian/scratch/monetdb/current/program-x86_64/var/MonetDB/dbfarm"
--set
"sql_logdir=/ufs/fabian/scratch/monetdb/current/program-x86_64/var/MonetDB/log"
--set mapi_port=33439 --set sql_port=45449 --set xquery_port=52917 --set
monet_prompt= --trace "--dbname=mTests_src_test" --dbinit="module(sql_server);
sql_server_start();" ; echo ; echo Over..
-# 22:26:32 >
+# 18:30:40 >
+# 18:30:40 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=38230" "--set"
"mapi_usock=/var/tmp/mtest-20764/.s.monetdb.38230" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB/mTests_sql_test"
"--set" "mal_listing=0"
+# 18:30:40 >
+# builtin opt gdk_dbpath =
/home/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm/demo
+# builtin opt gdk_debug = 0
+# builtin opt gdk_vmtrim = no
+# 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
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list