Changeset: 332e4c09e080 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=332e4c09e080
Added Files:
        sql/test/bugs/Tests/apply_with_union_assertion.sql
        sql/test/bugs/Tests/apply_with_union_assertion.stable.err
        sql/test/bugs/Tests/apply_with_union_assertion.stable.out
Branch: Oct2014
Log Message:

Added a test for the crash fixed by changeset 83b96198059d


diffs (196 lines):

diff --git a/sql/test/bugs/Tests/apply_with_union_assertion.sql 
b/sql/test/bugs/Tests/apply_with_union_assertion.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/bugs/Tests/apply_with_union_assertion.sql
@@ -0,0 +1,39 @@
+CREATE TABLE tbl (col1 DATE, col2 DATE, col3 CHARACTER LARGE OBJECT, col4 
CHARACTER LARGE OBJECT);
+CREATE TABLE tbl1 (col7 DATE, col3 CHARACTER LARGE OBJECT, col4 CHARACTER 
LARGE OBJECT, col5 BOOLEAN, col6 CHARACTER LARGE OBJECT);
+INSERT INTO tbl VALUES ('2015-01-01','2015-01-01','Z','0000');
+INSERT INTO tbl1 VALUES ('2015-01-01','Z','0000',false,'');
+
+CREATE FUNCTION mydateformat(d date)
+RETURNS CHAR(10)
+BEGIN
+       DECLARE outdate varchar(10);
+       DECLARE dt int;
+       DECLARE dm int;
+       SET dt = EXTRACT(DAY FROM d);
+       IF (dt < 10 )
+               THEN SET outdate = '0' || dt || '-';
+       ELSE SET outdate = dt || '-';
+       END IF;
+       SET dm = EXTRACT(MONTH FROM d);
+       IF (dm < 10 )
+               THEN SET outdate = outdate || '0' || dm || '-';
+       ELSE SET outdate = outdate || dm || '-';
+       END IF;
+       SET outdate = outdate || EXTRACT(YEAR FROM d);
+       RETURN outdate;
+END;
+
+UPDATE tbl1
+SET (col5,col6) = (
+       SELECT true ,'overwriten by col6 with tbl.col3 (' || tbl.col3 || ') and 
tbl.col1 (' || mydateformat(tbl.col1) || ') and tbl.col2 (' || 
mydateformat(tbl.col2) || ')'
+       FROM tbl
+       WHERE tbl1.col7 >= tbl.col1 AND tbl1.col7 <= tbl.col2
+       AND ( (tbl1.col3 = tbl.col3 AND (tbl1.col4 = '0000' OR tbl.col4 = 
'0000')) OR (tbl1.col4 = tbl.col4))
+);
+
+SELECT * FROM tbl1;
+
+DROP FUNCTION mydateformat;
+DROP TABLE tbl1;
+DROP TABLE tbl;
+
diff --git a/sql/test/bugs/Tests/apply_with_union_assertion.stable.err 
b/sql/test/bugs/Tests/apply_with_union_assertion.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/bugs/Tests/apply_with_union_assertion.stable.err
@@ -0,0 +1,37 @@
+stderr of test 'apply_with_union_assertion` in directory 'sql/test/bugs` 
itself:
+
+
+# 15:11:29 >  
+# 15:11:29 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=33563" "--set" 
"mapi_usock=/var/tmp/mtest-12425/.s.monetdb.33563" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch2/zhang/monet-install/Oct2014/debug/var/MonetDB/mTests_sql_test_bugs"
 "--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 15:11:29 >  
+
+# builtin opt  gdk_dbpath = 
/export/scratch2/zhang/monet-install/Oct2014/debug/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 = 33563
+# cmdline opt  mapi_usock = /var/tmp/mtest-12425/.s.monetdb.33563
+# cmdline opt  monet_prompt = 
+# cmdline opt  mal_listing = 2
+# cmdline opt  gdk_dbpath = 
/export/scratch2/zhang/monet-install/Oct2014/debug/var/MonetDB/mTests_sql_test_bugs
+# cmdline opt  mal_listing = 0
+# cmdline opt  embedded_r = yes
+# cmdline opt  gdk_debug = 536870922
+
+# 15:11:30 >  
+# 15:11:30 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-12425" "--port=33563"
+# 15:11:30 >  
+
+
+# 15:11:30 >  
+# 15:11:30 >  "Done."
+# 15:11:30 >  
+
diff --git a/sql/test/bugs/Tests/apply_with_union_assertion.stable.out 
b/sql/test/bugs/Tests/apply_with_union_assertion.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/bugs/Tests/apply_with_union_assertion.stable.out
@@ -0,0 +1,105 @@
+stdout of test 'apply_with_union_assertion` in directory 'sql/test/bugs` 
itself:
+
+
+# 15:11:29 >  
+# 15:11:29 >  "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" 
"mapi_open=true" "--set" "mapi_port=33563" "--set" 
"mapi_usock=/var/tmp/mtest-12425/.s.monetdb.33563" "--set" "monet_prompt=" 
"--forcemito" "--set" "mal_listing=2" 
"--dbpath=/export/scratch2/zhang/monet-install/Oct2014/debug/var/MonetDB/mTests_sql_test_bugs"
 "--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 15:11:29 >  
+
+# MonetDB 5 server v11.19.10
+# This is an unreleased version
+# Serving database 'mTests_sql_test_bugs', using 8 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically 
linked
+# Found 15.590 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
+# Visit http://www.monetdb.org/ for further information
+# Listening for connection requests on mapi:monetdb://riga.ins.cwi.nl:33563/
+# Listening for UNIX domain connection requests on 
mapi:monetdb:///var/tmp/mtest-12425/.s.monetdb.33563
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+# MonetDB/R   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: 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: 40_json.sql
+# loading sql script: 41_jsonstore.sql
+# loading sql script: 45_uuid.sql
+# loading sql script: 46_gsl.sql
+# loading sql script: 75_storagemodel.sql
+# loading sql script: 80_statistics.sql
+# loading sql script: 80_udf.sql
+# loading sql script: 85_bam.sql
+# loading sql script: 90_generator.sql
+# loading sql script: 99_system.sql
+#WARNING To speedup user.mydateformat a bulk operator implementation is needed
+#WARNING To speedup user.mydateformat a bulk operator implementation is needed
+
+# 15:11:30 >  
+# 15:11:30 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-12425" "--port=33563"
+# 15:11:30 >  
+
+#CREATE TABLE tbl (col1 DATE, col2 DATE, col3 CHARACTER LARGE OBJECT, col4 
CHARACTER LARGE OBJECT);
+#CREATE TABLE tbl1 (col7 DATE, col3 CHARACTER LARGE OBJECT, col4 CHARACTER 
LARGE OBJECT, col5 BOOLEAN, col6 CHARACTER LARGE OBJECT);
+#INSERT INTO tbl VALUES ('2015-01-01','2015-01-01','Z','0000');
+[ 1    ]
+#INSERT INTO tbl1 VALUES ('2015-01-01','Z','0000',false,'');
+[ 1    ]
+#CREATE FUNCTION mydateformat(d date)
+#RETURNS CHAR(10)
+#BEGIN
+#      DECLARE outdate varchar(10);
+#      DECLARE dt int;
+#      DECLARE dm int;
+#      SET dt = EXTRACT(DAY FROM d);
+#      IF (dt < 10 )
+#              THEN SET outdate = '0' || dt || '-';
+#      ELSE SET outdate = dt || '-';
+#      END IF;
+#      SET dm = EXTRACT(MONTH FROM d);
+#      IF (dm < 10 )
+#              THEN SET outdate = outdate || '0' || dm || '-';
+#      ELSE SET outdate = outdate || dm || '-';
+#      END IF;
+#      SET outdate = outdate || EXTRACT(YEAR FROM d);
+#      RETURN outdate;
+#END;
+#UPDATE tbl1
+#SET (col5,col6) = (
+#      SELECT true ,'overwriten by col6 with tbl.col3 (' || tbl.col3 || ') and 
tbl.col1 (' || mydateformat(tbl.col1) || ') and tbl.col2 (' || 
mydateformat(tbl.col2) || ')'
+#      FROM tbl
+#      WHERE tbl1.col7 >= tbl.col1 AND tbl1.col7 <= tbl.col2
+#      AND ( (tbl1.col3 = tbl.col3 AND (tbl1.col4 = '0000' OR tbl.col4 = 
'0000')) OR (tbl1.col4 = tbl.col4))
+#);
+[ 1    ]
+#SELECT * FROM tbl1;
+% sys.tbl1,    sys.tbl1,       sys.tbl1,       sys.tbl1,       sys.tbl1 # 
table_name
+% col7,        col3,   col4,   col5,   col6 # name
+% date,        clob,   clob,   boolean,        clob # type
+% 10,  1,      4,      5,      88 # length
+[ 2015-01-01,  "Z",    "0000", true,   "overwriten by col6 with tbl.col3 (Z) 
and tbl.col1 (01-01-2015) and tbl.col2 (01-01-2015)"      ]
+#DROP FUNCTION mydateformat;
+#DROP TABLE tbl1;
+#DROP TABLE tbl;
+
+# 15:11:30 >  
+# 15:11:30 >  "Done."
+# 15:11:30 >  
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to