Changeset: 0299b070e196 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0299b070e196
Modified Files:
        sql/server/rel_optimizer.c
        sql/test/BugTracker-2011/Tests/All
        sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
        sql/test/BugTracker-2011/Tests/like_or.Bug-2924.sql
        sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.err
        sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.out
        sql/test/snodgrass/cast_select.sql
Branch: Aug2011
Log Message:

fixed like or bug 2924, ie don't handle like's as range


diffs (157 lines):

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
@@ -2151,8 +2151,8 @@ exps_merge_rse( mvc *sql, list *l, list 
                                list_merge(exps, le->r, NULL);
                                list_merge(exps, re->r, NULL);
                                fnd = exp_in(sql->sa, le->l, exps, cmp_in);
-                       } else if (le->f && re->f && 
-                                  le->flag == re->flag) {
+                       } else if (le->f && re->f && /* merge ranges */
+                                  le->flag == re->flag && le->flag <= cmp_lt) {
                                sql_subfunc *min = sql_bind_func(sql->sa, 
sql->session->schema, "sql_min", exp_subtype(le->r), exp_subtype(re->r));
                                sql_subfunc *max = sql_bind_func(sql->sa, 
sql->session->schema, "sql_max", exp_subtype(le->f), exp_subtype(re->f));
                                sql_exp *mine, *maxe;
diff --git a/sql/test/BugTracker-2011/Tests/All 
b/sql/test/BugTracker-2011/Tests/All
--- a/sql/test/BugTracker-2011/Tests/All
+++ b/sql/test/BugTracker-2011/Tests/All
@@ -57,3 +57,4 @@ interrupted-initialization.Bug-2875
 case-overflow.Bug-2239
 sqltables.Bug-2921
 Multiplication_and_cast.Bug-2923
+like_or.Bug-2924
diff --git 
a/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out 
b/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
--- a/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
+++ b/sql/test/BugTracker-2011/Tests/default-interval.Bug-2877.stable.out
@@ -57,7 +57,7 @@ Ready.
 % i,   c1,     c2 # name
 % int, sec_interval,   sec_interval # type
 % 1,   0,      0 # length
-[ 1,   3600,   3600    ]
+[ 1,   3600.000,       3600.000        ]
 #rollback;
 
 # 12:40:50 >  
diff --git 
a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out 
b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
--- a/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
+++ b/sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
@@ -36,7 +36,7 @@ Ready.
 % 66 # length
 function user.s3_1{autoCommit=true}():void;
     X_23 := nil:bat[:oid,:dbl];
-barrier X_61 := language.dataflow();
+barrier X_55 := language.dataflow();
     X_2 := sql.mvc();
     X_10:bat[:oid,:dbl]  := sql.bind(X_2,"sys","tab_2826","d",0);
     X_8:bat[:oid,:dbl]  := sql.bind(X_2,"sys","tab_2826","d",2);
@@ -53,7 +53,7 @@ barrier X_61 := language.dataflow();
     X_21 := algebra.markT(X_19,0@0:oid);
     X_22 := bat.reverse(X_21);
     X_23 := algebra.leftjoin(X_22,X_14);
-exit X_61;
+exit X_55;
     X_24 := sql.resultSet(1,1,X_23);
     sql.rsColumn(X_24,"sys.tab_2826","d","double",53,0,X_23);
     X_30 := io.stdout();
diff --git a/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.sql 
b/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.sql
@@ -0,0 +1,2 @@
+select * from schemas where name like '%ys' escape '=' or name like '%y' escape
+'=';
diff --git a/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.err 
b/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'like_or.Bug-2924` in directory 'test/BugTracker-2011` itself:
+
+
+# 08:16:49 >  
+# 08:16:49 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"gdk_dbfarm=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" "--set" 
"mapi_open=true" "--set" "mapi_port=37572" "--set" "monet_prompt=" "--trace" 
"--forcemito" "--set" "mal_listing=2" "--dbname=mTests_test_BugTracker-2011" 
"--set" "mal_listing=0"
+# 08:16:49 >  
+
+# builtin opt  gdk_dbname = demo
+# builtin opt  gdk_dbfarm = 
/home/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm
+# builtin opt  gdk_debug = 0
+# builtin opt  gdk_alloc_map = no
+# 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  gdk_dbfarm = 
/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB
+# cmdline opt  mapi_open = true
+# cmdline opt  mapi_port = 37572
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbname = mTests_test_BugTracker-2011
+# cmdline opt  mal_listing = 0
+
+# 08:16:49 >  
+# 08:16:49 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=niels" 
"--port=37572"
+# 08:16:49 >  
+
+
+# 08:16:49 >  
+# 08:16:49 >  "Done."
+# 08:16:49 >  
+
diff --git a/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.out 
b/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/like_or.Bug-2924.stable.out
@@ -0,0 +1,37 @@
+stdout of test 'like_or.Bug-2924` in directory 'test/BugTracker-2011` itself:
+
+
+# 08:16:49 >  
+# 08:16:49 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"gdk_dbfarm=/home/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" "--set" 
"mapi_open=true" "--set" "mapi_port=37572" "--set" "monet_prompt=" "--trace" 
"--forcemito" "--set" "mal_listing=2" "--dbname=mTests_test_BugTracker-2011" 
"--set" "mal_listing=0"
+# 08:16:49 >  
+
+# MonetDB 5 server v11.5.4
+# This is an unreleased version
+# Serving database 'mTests_test_BugTracker-2011', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically 
linked
+# Found 3.788 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2011 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on 
mapi:monetdb://niels.nesco.mine.nu:37572/
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+
+# 08:16:49 >  
+# 08:16:49 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=niels" 
"--port=37572"
+# 08:16:49 >  
+
+#select * from schemas where name like '%ys' escape '=' or name like '%y' 
escape
+#'=';
+% sys.schemas, sys.schemas,    sys.schemas,    sys.schemas # table_name
+% id,  name,   authorization,  owner # name
+% int, varchar,        int,    int # type
+% 4,   3,      1,      1 # length
+[ 2000,        "sys",  2,      3       ]
+
+# 08:16:49 >  
+# 08:16:49 >  "Done."
+# 08:16:49 >  
+
diff --git a/sql/test/snodgrass/cast_select.sql 
b/sql/test/snodgrass/cast_select.sql
--- a/sql/test/snodgrass/cast_select.sql
+++ b/sql/test/snodgrass/cast_select.sql
@@ -22,6 +22,6 @@ SELECT CAST('12:34' AS INTERVAL DAY TO M
 SELECT CAST( INTERVAL'86 00:00:00' DAY TO SECOND AS INTERVAL HOUR TO SECOND ) 
= INTERVAL '2064:00:00' HOUR TO SECOND;
 SELECT CAST('86 00:00:00' AS INTERVAL HOUR(3) TO SECOND ); -- err: overflow 
exception
 SELECT CAST( CAST( 7430400 AS INTERVAL SECOND ) AS INTERVAL DAY TO SECOND ) = 
INTERVAL '86 00:00:00' DAY TO SECOND;
-SELECT CAST(DATE '1997-01-01' AS CHARACTER) = '1997-01-01';
+SELECT CAST(DATE '1997-01-01' AS CHARACTER(10)) = '1997-01-01';
 SELECT CAST(INTERVAL '7430400' SECOND AS INTEGER) = 7430400;
 SELECT CAST(CAST(INTERVAL '2064:00:00' HOUR TO SECOND AS INTERVAL SECOND) AS 
INTEGER) = 7430400;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to