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

Reply via email to