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