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 Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list