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