Changeset: 1dea56f8b11c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1dea56f8b11c
Added Files:
        sql/test/sciql2sql/Tests/slice_fixed_array.sql
Modified Files:
        sql/test/sciql2sql/Tests/All
Branch: SciQL-2
Log Message:

Slicing a vector


diffs (95 lines):

diff --git a/sql/test/sciql2sql/Tests/All b/sql/test/sciql2sql/Tests/All
--- a/sql/test/sciql2sql/Tests/All
+++ b/sql/test/sciql2sql/Tests/All
@@ -13,7 +13,8 @@ update_unbound_array
 update_step_int_array
 update_unbound_step_array
 
-# selections with target is relation
+# slice selections with target is relation
+slice_fixed_array
 #show slice/dice over arrays
 #
 # selection with array is arrays
diff --git a/sql/test/sciql2sql/Tests/slice_fixed_array.sql 
b/sql/test/sciql2sql/Tests/slice_fixed_array.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/sciql2sql/Tests/slice_fixed_array.sql
@@ -0,0 +1,77 @@
+-- Array slicing examples
+CREATE ARRAY array1D(x INTEGER DIMENSION[7], v INTEGER DEFAULT 1, w INTEGER 
DEFAULT 0);
+
+-- relational equivalent 
+CREATE TABLE vector(x INTEGER CHECK(x >=0 and x < 7), v INTEGER DEFAULT 1, w 
INTEGER DEFAULT 0);
+INSERT INTO vector values 
+( 0, 1, 1),
+( 1, 1, 2),
+( 2, 2, 1),
+( 3, 2, 5),
+( 4, 3, 7),
+( 5, 3, 7),
+( 6, 4, 1);
+
+-- slice single cell
+SELECT * FROM array1D[0];
+SELECT * FROM array1D[1];
+SELECT * FROM array1D[6];
+
+-- relational equivalent
+SELECT * FROM vector WHERE x =0;
+SELECT * FROM vector WHERE x =1;
+SELECT * FROM vector WHERE x =6;
+
+-- slice multiple cells
+SELECT * FROM array1D[0:2];
+SELECT * FROM array1D[1:3];
+
+-- relational equivalent
+SELECT * FROM vector WHERE x >=0 and x <2;
+SELECT * FROM vector WHERE x >=1 and x <3;
+
+
+-- slice multiple cells with step
+SELECT * FROM array1D[0:2:2];
+SELECT * FROM array1D[1:2:5];
+
+-- relational equivalent
+SELECT * FROM vector WHERE x >=0 and x <2 and (x %2 ) = 0;
+SELECT * FROM vector WHERE x >=1 and x <5 and (x %2 ) = 0;
+
+-- slice multiple cells with step
+SELECT * FROM array1D[0:*];
+SELECT * FROM array1D[1:*];
+
+-- relational equivalent
+SELECT * FROM vector WHERE x >=0;
+SELECT * FROM vector WHERE x >=1;
+
+-- slice multiple cells with step
+SELECT * FROM array1D[*:3];
+SELECT * FROM array1D[*];
+
+-- relational equivalent
+SELECT * FROM vector WHERE x <3;
+SELECT * FROM vector WHERE true;
+
+-- slice multiple cells with step
+SELECT * FROM array1D[*:2:3];
+SELECT * FROM array1D[*:2:*];
+
+lice multiple cells with step
+SELECT * FROM array1D[*:3];
+SELECT * FROM array1D[*];
+
+-- relational equivalent
+SELECT * FROM vector WHERE x <3;
+SELECT * FROM vector WHERE true;
+
+- relational equivalent
+SELECT * FROM vector WHERE x <3 and (x % 2) = 0;
+SELECT * FROM vector WHERE true and (x % 2) = 0;
+
+-- semantic errors
+SELECT vector[1];
+SELECT vector[1].v;
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to