Changeset: e74816926a04 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e74816926a04
Modified Files:
monetdb5/modules/mal/array.mx
sql/test/sciql/Tests/01_create_23.sql
sql/test/sciql/Tests/04_insert_01.sql
sql/test/sciql/Tests/04_insert_02.sql
sql/test/sciql/Tests/04_insert_03.sql
sql/test/sciql/Tests/04_insert_03.stable.out
sql/test/sciql/Tests/04_insert_06.stable.err
sql/test/sciql/Tests/04_insert_06.stable.out
sql/test/sciql/Tests/04_insert_07.stable.err
sql/test/sciql/Tests/04_insert_07.stable.out
sql/test/sciql/Tests/All
Branch: sciql
Log Message:
Don't blindly set the 'nonil' property, since the second parameter of
array.filler can be a NULL value
approved tests 04_insert_{06,07}.
INSERT INTO <ary> VALUES works (for the queries in the tests).
INSERT INTO <ary> <sub-query> needs more investigation.
added a new test for CREATE ARRAY with cells of various data types.
the queries fail, so need more investigation.
diffs (truncated from 703 to 300 lines):
diff --git a/monetdb5/modules/mal/array.mx b/monetdb5/modules/mal/array.mx
--- a/monetdb5/modules/mal/array.mx
+++ b/monetdb5/modules/mal/array.mx
@@ -402,7 +402,37 @@ ARRAYfiller(Client cntxt, MalBlkPtr mb,
BATsetcount(bn, cnt);
bn->tsorted = 1;
- bn->T->nonil = TRUE;
+ switch(type){
+ case TYPE_bit:
+ bn->T->nonil = *(bit*)val==bit_nil?FALSE:TRUE;
+ break;
+ case TYPE_bte:
+ bn->T->nonil = *(bte*)val==bte_nil?FALSE:TRUE;
+ break;
+ case TYPE_sht:
+ bn->T->nonil = *(sht*)val==sht_nil?FALSE:TRUE;
+ break;
+ case TYPE_int:
+ bn->T->nonil = *(int*)val==int_nil?FALSE:TRUE;
+ break;
+ case TYPE_flt:
+ bn->T->nonil = *(flt*)val==flt_nil?FALSE:TRUE;
+ break;
+ case TYPE_dbl:
+ bn->T->nonil = *(dbl*)val==dbl_nil?FALSE:TRUE;
+ break;
+ case TYPE_lng:
+ bn->T->nonil = *(lng*)val==lng_nil?FALSE:TRUE;
+ break;
+ case TYPE_chr:
+ bn->T->nonil = *(chr*)val==chr_nil?FALSE:TRUE;
+ break;
+ case TYPE_str:
+ bn->T->nonil = (strcmp(*(str*)val, str_nil) ==
0)?FALSE:TRUE;
+ break;
+ default:
+ throw(MAL, "array.filler", "Unsupported data type");
+ }
BBPkeepref(*ret = bn->batCacheid);
return MAL_SUCCEED;
}
diff --git a/sql/test/sciql/Tests/01_create_23.sql
b/sql/test/sciql/Tests/01_create_23.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/sciql/Tests/01_create_23.sql
@@ -0,0 +1,32 @@
+CREATE ARRAY ary (i INT DIMENSION[4], v TIMESTAMP);
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v DATE);
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v TIME);
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v CHAR(5));
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v VARCHAR(5) DEFAULT 'v5');
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v CLOB DEFAULT 'abcd');
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v BLOB DEFAULT '1234');
+SELECT * FROM ary;
+DROP ARRAY ary;
+
+CREATE ARRAY ary (i INT DIMENSION[4], v1 CHAR(5), v2 TIMESTAMP, v3 DATE, v4
TIME, v5 VARCHAR(5) DEFAULT 'v5', v6 CLOB DEFAULT 'abcd', v7 BLOB DEFAULT
'1234');
+SELECT * FROM ary;
+DROP ARRAY ary;
+
diff --git a/sql/test/sciql/Tests/04_insert_01.sql
b/sql/test/sciql/Tests/04_insert_01.sql
--- a/sql/test/sciql/Tests/04_insert_01.sql
+++ b/sql/test/sciql/Tests/04_insert_01.sql
@@ -1,10 +1,10 @@
-CREATE ARRAY matrix (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT DEFAULT
0.0);
-SELECT * FROM matrix;
+CREATE ARRAY matrix_0401 (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT
DEFAULT 0.0);
+SELECT * FROM matrix_0401;
-- this update is necessary because 'v FLOAT DEFAULT (x + y) * 100' is not
implemented yet.
-UPDATE matrix SET v = (x + y) * 100;
-SELECT * FROM matrix;
+UPDATE matrix_0401 SET v = (x + y) * 100;
+SELECT * FROM matrix_0401;
-- This is wat we really want to test
-INSERT INTO matrix SELECT x-1, y, v FROM matrix WHERE x > 2;
-SELECT * FROM matrix;
-DROP ARRAY matrix;
+INSERT INTO matrix_0401 SELECT x-1, y, v FROM matrix_0401 WHERE x > 2;
+SELECT * FROM matrix_0401;
+DROP ARRAY matrix_0401;
diff --git a/sql/test/sciql/Tests/04_insert_02.sql
b/sql/test/sciql/Tests/04_insert_02.sql
--- a/sql/test/sciql/Tests/04_insert_02.sql
+++ b/sql/test/sciql/Tests/04_insert_02.sql
@@ -1,6 +1,6 @@
-CREATE ARRAY matrix (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT DEFAULT
0.0);
-SELECT * FROM matrix;
-INSERT INTO matrix SELECT x, y, 3.3 FROM matrix WHERE x = 3;
-SELECT * FROM matrix;
-DROP ARRAY matrix;
+CREATE ARRAY matrix_0402 (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT
DEFAULT 0.0);
+SELECT * FROM matrix_0402;
+INSERT INTO matrix_0402 SELECT x, y, 3.3 FROM matrix_0402 WHERE x = 3;
+SELECT * FROM matrix_0402;
+DROP ARRAY matrix_0402;
diff --git a/sql/test/sciql/Tests/04_insert_03.sql
b/sql/test/sciql/Tests/04_insert_03.sql
--- a/sql/test/sciql/Tests/04_insert_03.sql
+++ b/sql/test/sciql/Tests/04_insert_03.sql
@@ -1,9 +1,9 @@
-CREATE ARRAY matrix (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT DEFAULT
0.0);
-CREATE ARRAY stripes (x INT DIMENSION[4], y INT DIMENSION[4] CHECK(MOD(y,2) =
1), v FLOAT DEFAULT 0.0);
-SELECT * FROM matrix;
+CREATE ARRAY matrix_0403 (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT
DEFAULT 0.0);
+CREATE ARRAY stripes (x INT DIMENSION[4], y INT DIMENSION[4] CHECK(MOD(y,2) =
1), v FLOAT DEFAULT 6.6);
+SELECT * FROM matrix_0403;
SELECT * FROM stripes;
-INSERT INTO matrix(v) SELECT v FROM stripes;
-SELECT * FROM matrix;
-DROP ARRAY matrix;
+INSERT INTO matrix_0403(v) SELECT v FROM stripes;
+SELECT * FROM matrix_0403;
+DROP ARRAY matrix_0403;
DROP ARRAY stripes;
diff --git a/sql/test/sciql/Tests/04_insert_03.stable.out
b/sql/test/sciql/Tests/04_insert_03.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/sciql/Tests/04_insert_03.stable.out
@@ -0,0 +1,114 @@
+stdout of test '04_insert_03` in directory 'test/sciql` itself:
+
+
+# 22:42:48 >
+# 22:42:48 > mserver5 --debug=10 --set gdk_nr_threads=0 --set
"gdk_dbfarm=/export/scratch0/zhang/monet-install/sciql/debug/var/MonetDB" --set
mapi_open=true --set mapi_port=37015 --set monet_prompt= --trace --forcemito
--set mal_listing=2 "--dbname=mTests_test_sciql" --set mal_listing=0 ; echo ;
echo Over..
+# 22:42:48 >
+
+# MonetDB 5 server v11.6.0
+# This is an unreleased version
+# Serving database 'mTests_test_sciql', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 7.749 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://jarl.ins.cwi.nl:37015/
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+# SQL catalog created, loading sql scripts once
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/10_math.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/11_times.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/12_url.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/13_date.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/14_inet.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/15_history.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/16_tracelog.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/17_compress.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/18_dictionary.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/19_cluster.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/20_vacuum.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/21_dependency_functions.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/22_clients.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/23_skyserver.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/24_zorder.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/25_debug.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/29_array.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/40_geom.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/80_udf.sql
+# SQL loading sql scripts
/export/scratch0/zhang/monet-install/sciql/debug/lib/monetdb5/createdb/99_system.sql
+
+Over..
+
+# 22:42:48 >
+# 22:42:48 > mclient -lsql -ftest -i -e --host=jarl --port=37015
+# 22:42:48 >
+
+#CREATE ARRAY matrix_0403 (x INT DIMENSION[4], y INT DIMENSION[4], v FLOAT
DEFAULT 0.0);
+#CREATE ARRAY stripes (x INT DIMENSION[4], y INT DIMENSION[4] CHECK(MOD(y,2) =
1), v FLOAT DEFAULT 6.6);
+#SELECT * FROM matrix_0403;
+% sys.matrix_0403, sys.matrix_0403, sys.matrix_0403 # table_name
+% x, y, v # name
+% int, int, double # type
+% 1, 1, 22 # length
+[ 0, 0, 0 ]
+[ 0, 1, 0 ]
+[ 0, 2, 0 ]
+[ 0, 3, 0 ]
+[ 1, 0, 0 ]
+[ 1, 1, 0 ]
+[ 1, 2, 0 ]
+[ 1, 3, 0 ]
+[ 2, 0, 0 ]
+[ 2, 1, 0 ]
+[ 2, 2, 0 ]
+[ 2, 3, 0 ]
+[ 3, 0, 0 ]
+[ 3, 1, 0 ]
+[ 3, 2, 0 ]
+[ 3, 3, 0 ]
+#SELECT * FROM stripes;
+% sys.stripes, sys.stripes, sys.stripes # table_name
+% x, y, v # name
+% int, int, double # type
+% 1, 1, 22 # length
+[ 0, 1, 6.6 ]
+[ 0, 3, 6.6 ]
+[ 1, 1, 6.6 ]
+[ 1, 3, 6.6 ]
+[ 2, 1, 6.6 ]
+[ 2, 3, 6.6 ]
+[ 3, 1, 6.6 ]
+[ 3, 3, 6.6 ]
+#INSERT INTO matrix_0403(v) SELECT v FROM stripes;
+[ 8 ]
+#SELECT * FROM matrix_0403;
+% sys.matrix_0403, sys.matrix_0403, sys.matrix_0403 # table_name
+% x, y, v # name
+% int, int, double # type
+% 1, 1, 22 # length
+[ 0, 0, 6.6 ]
+[ 0, 1, 6.6 ]
+[ 0, 2, 6.6 ]
+[ 0, 3, 6.6 ]
+[ 1, 0, 6.6 ]
+[ 1, 1, 6.6 ]
+[ 1, 2, 6.6 ]
+[ 1, 3, 6.6 ]
+[ 2, 0, 0 ]
+[ 2, 1, 0 ]
+[ 2, 2, 0 ]
+[ 2, 3, 0 ]
+[ 3, 0, 0 ]
+[ 3, 1, 0 ]
+[ 3, 2, 0 ]
+[ 3, 3, 0 ]
+#DROP ARRAY matrix_0403;
+#DROP ARRAY stripes;
+
+# 22:42:48 >
+# 22:42:48 > Done.
+# 22:42:48 >
+
diff --git a/sql/test/sciql/Tests/04_insert_06.stable.err
b/sql/test/sciql/Tests/04_insert_06.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/sciql/Tests/04_insert_06.stable.err
@@ -0,0 +1,37 @@
+stderr of test '04_insert_06` in directory 'test/sciql` itself:
+
+
+# 22:20:24 >
+# 22:20:24 > mserver5 --debug=10 --set gdk_nr_threads=0 --set
"gdk_dbfarm=/export/scratch0/zhang/monet-install/sciql/debug/var/MonetDB" --set
mapi_open=true --set mapi_port=35504 --set monet_prompt= --trace --forcemito
--set mal_listing=2 "--dbname=mTests_test_sciql" --set mal_listing=0 ; echo ;
echo Over..
+# 22:20:24 >
+
+# builtin opt gdk_dbname = demo
+# builtin opt gdk_dbfarm =
/export/scratch0/zhang/monet-install/sciql/debug/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 =
/export/scratch0/zhang/monet-install/sciql/debug/var/MonetDB
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 35504
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbname = mTests_test_sciql
+# cmdline opt mal_listing = 0
+
+# 22:20:24 >
+# 22:20:24 > mclient -lsql -ftest -i -e --host=jarl --port=35504
+# 22:20:24 >
+
+
+# 22:20:24 >
+# 22:20:24 > Done.
+# 22:20:24 >
+
diff --git a/sql/test/sciql/Tests/04_insert_06.stable.out
b/sql/test/sciql/Tests/04_insert_06.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/sciql/Tests/04_insert_06.stable.out
@@ -0,0 +1,191 @@
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list