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

Reply via email to