Changeset: 2837102a706c for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2837102a706c
Modified Files:
        sql/test/sciql/Tests/sciql00.sql
        sql/test/sciql/Tests/sciql01.sql
        sql/test/sciql/Tests/sciql02.sql
        sql/test/sciql/Tests/sciql03.sql
        sql/test/sciql/Tests/sciql04.sql
        sql/test/sciql/Tests/sciql08.sql
        sql/test/sciql/Tests/sciql09.sql
        sql/test/sciql/Tests/sciql10.sql
        sql/test/sciql/Tests/sciql12.sql
        sql/test/sciql/Tests/sciql13.sql
        sql/test/sciql/Tests/sciql14.sql
        sql/test/sciql/Tests/sciql15.sql
        sql/test/sciql/Tests/sciql17.sql
        sql/test/sciql/Tests/sciql18.sql
        sql/test/sciql/Tests/sciql19.sql
        sql/test/sciql/Tests/sciql20.sql
        sql/test/sciql/Tests/sciql21.sql
        sql/test/sciql/Tests/sciql22.sql
        sql/test/sciql/Tests/sciql23.sql
        sql/test/sciql/Tests/sciql24.sql
        sql/test/sciql/Tests/sciql25.sql
        sql/test/sciql/Tests/sciql26.sql
        sql/test/sciql/Tests/sciql27.sql
        sql/test/sciql/Tests/sciql28.sql
        sql/test/sciql/Tests/sciql29.sql
        sql/test/sciql/Tests/sciql30.sql
        sql/test/sciql/Tests/sciql30.stable.err
        sql/test/sciql/Tests/sciql30.stable.out
        sql/test/sciql/Tests/sciql31.sql
        sql/test/sciql/Tests/sciql31.stable.err
        sql/test/sciql/Tests/sciql31.stable.out
Branch: sciql
Log Message:

Synced the queries with the latest version of the sciql paper,
 i.e., the version published in the array db 2011 workshop.


diffs (truncated from 694 to 300 lines):

diff --git a/sql/test/sciql/Tests/sciql00.sql b/sql/test/sciql/Tests/sciql00.sql
--- a/sql/test/sciql/Tests/sciql00.sql
+++ b/sql/test/sciql/Tests/sciql00.sql
@@ -2,3 +2,4 @@
 CREATE ARRAY A2 ( x integer DIMENSION[0:4:1], v float DEFAULT 0.0);
 CREATE SEQUENCE range AS integer START WITH 0 INCREMENT BY 1 MAXVALUE 3;
 CREATE ARRAY A3 ( x integer DIMENSION [range], v float DEFAULT 0.0);
+
diff --git a/sql/test/sciql/Tests/sciql01.sql b/sql/test/sciql/Tests/sciql01.sql
--- a/sql/test/sciql/Tests/sciql01.sql
+++ b/sql/test/sciql/Tests/sciql01.sql
@@ -1,9 +1,5 @@
 CREATE ARRAY matrix ( x integer DIMENSION[4], y integer DIMENSION[4], v float 
DEFAULT 0.0 );
-CREATE ARRAY grid( x integer DIMENSION[4] CHECK(mod(x,2) = 0), y integer 
DIMENSION[4], v float DEFAULT 0.0);
-CREATE ARRAY diagonal( x integer DIMENSION[4], y integer DIMENSION[4] CHECK(x 
= y), v float );
+CREATE ARRAY stripes( x integer DIMENSION[4], y integer DIMENSION[4] 
CHECK(mod(y,2) = 1), v float DEFAULT 0.0);
+CREATE ARRAY diagonal( x integer DIMENSION[4], y integer DIMENSION[4] CHECK(x 
= y), v float DEFAULT 0.0);
 CREATE ARRAY sparse( x integer DIMENSION[4], y integer DIMENSION[4], v float 
DEFAULT 0.0 CHECK(v>=0.0));
 
-
-CREATE ARRAY stripes( x integer DIMENSION[4], y integer DIMENSION[4], v float 
DEFAULT 0.0 );
-CREATE ARRAY stripes2( x integer DIMENSION, y integer DIMENSION, v float 
DEFAULT 0.0 );
-CREATE ARRAY stripes3( x integer DIMENSION[4], y integer DIMENSION, v float 
DEFAULT 0.0 );
diff --git a/sql/test/sciql/Tests/sciql02.sql b/sql/test/sciql/Tests/sciql02.sql
--- a/sql/test/sciql/Tests/sciql02.sql
+++ b/sql/test/sciql/Tests/sciql02.sql
@@ -1,6 +1,6 @@
-CREATE TABLE experiment( 
-       run date DIMENSION[  TIMESTAMP '2010-01-01':*: INTERVAL'1' day], 
-       payload float ARRAY[4][4] DEFAULT 0.0 );
+CREATE ARRAY experiment( 
+       run date DIMENSION[TIMESTAMP '2010-01-01':*: INTERVAL '1' MINUTE], 
+       payload FLOAT DEFAULT 0.0 );
 
 CREATE ARRAY timeseries (
     tick TIMESTAMP DIMENSION,
diff --git a/sql/test/sciql/Tests/sciql03.sql b/sql/test/sciql/Tests/sciql03.sql
--- a/sql/test/sciql/Tests/sciql03.sql
+++ b/sql/test/sciql/Tests/sciql03.sql
@@ -1,7 +1,12 @@
-UPDATE stripes SET v = x + y; 
+UPDATE matrix SET v = CASE
+    WHEN x>y THEN x + y
+    WHEN x<y THEN x - y
+    ELSE 0 END;
+
+UPDATE diagonal SET v = x +y;
+
+UPDATE stripes SET v = MOD(RAND(),16);
+
+-- not in the paper
 UPDATE stripes SET x = x+1;  -- what does it mean
                                                        -- consider stripes 
with free dimensions too
-UPDATE grid
-SET v = CASE WHEN x > y THEN x + y  WHEN X<y THEN x - y ELSE 0 END;
-UPDATE diagonal SET v = x +y;
-UPDATE sparse SET v = mod(rand(),16);
diff --git a/sql/test/sciql/Tests/sciql04.sql b/sql/test/sciql/Tests/sciql04.sql
--- a/sql/test/sciql/Tests/sciql04.sql
+++ b/sql/test/sciql/Tests/sciql04.sql
@@ -1,6 +1,7 @@
-INSERT INTO grid VALUES(1,1,25);
-
 DELETE FROM matrix WHERE x = 2;
 INSERT INTO matrix SELECT x-1, y, v FROM matrix WHERE x > 2;
 INSERT INTO matrix SELECT x, y, 0 FROM matrix WHERE x = 3;
 INSERT INTO matrix(v) SELECT v FROM stripes;
+
+-- not in the paper
+INSERT INTO stripes VALUES(1,1,25);
diff --git a/sql/test/sciql/Tests/sciql08.sql b/sql/test/sciql/Tests/sciql08.sql
--- a/sql/test/sciql/Tests/sciql08.sql
+++ b/sql/test/sciql/Tests/sciql08.sql
@@ -1,2 +1,3 @@
 SELECT matrix[1][1].v; 
+SELECT matrix[*][1:3].v; 
 SELECT sparse[0:2][0:2].v;
diff --git a/sql/test/sciql/Tests/sciql09.sql b/sql/test/sciql/Tests/sciql09.sql
--- a/sql/test/sciql/Tests/sciql09.sql
+++ b/sql/test/sciql/Tests/sciql09.sql
@@ -1,5 +1,8 @@
-SET vector[0:2].v = (expr1,expr2); 
-SET vector[x].v = CASE  WHEN vector[x].v < 0  THEN 0 
-       WHEN vector[x].v >10 THEN 10 * x END ;
+-- FIXME: does this query update all 'v'-s in a row/column?
+UPDATE matrix SET matrix[0:2].v = v * 1.19;
 
-       
+-- FIXME: the query does not match its description in the paper, nl., the CASE 
statement doesn't cover all value cases.
+UPDATE matrix SET matrix[x].v = CASE
+    WHEN matrix[x].v < 0 THEN x
+       WHEN matrix[x].v >10 THEN 10 * x END;
+
diff --git a/sql/test/sciql/Tests/sciql10.sql b/sql/test/sciql/Tests/sciql10.sql
--- a/sql/test/sciql/Tests/sciql10.sql
+++ b/sql/test/sciql/Tests/sciql10.sql
@@ -1,16 +1,22 @@
-CREATE ARRAY vmatrix (
-  x INTEGER DIMENSION[-1:4],
-  y INTEGER DIMENSION[-1:4],
-  w FLOAT DEFAULT 0) AS SELECT y, x, v FROM matrix; 
+CREATE VIEW ARRAY vmatrix (
+  x INTEGER DIMENSION[-1:5:1],
+  y INTEGER DIMENSION[-1:5:1],
+  w FLOAT DEFAULT 0) AS
+SELECT y, x, v FROM matrix; 
 
-CREATE ARRAY vector (
-  x INTEGER DIMENSION[-1:4],
-  w FLOAT DEFAULT 0);
-SELECT (A.v+B.v)/2 FROM vector AS A JOIN
-  (SELECT x+1 AS x, w FROM vector) AS B ON A.x = B.x;
+CREATE VIEW ARRAY vector (
+  x INTEGER DIMENSION[-1:5:1],
+  w FLOAT DEFAULT 0) AS
+SELECT A.x, (A.v+B.v)/2
+FROM matrix AS A JOIN
+  (SELECT x+1 AS x, v FROM matrix) AS B ON A.x = B.x;
 
-CREATE ARRAY vmatrix (  x INTEGER DIMENSION[-1:4], 
-  y INTEGER DIMENSION[-1:4],
+CREATE VIEW ARRAY vmatrix2 (
+  x INTEGER DIMENSION[-1:5:1], 
+  y INTEGER DIMENSION[-1:5:1],
   w FLOAT DEFAULT 0) AS
+SELECT x, y, v FROM matrix WHERE x < 2
+UNION
 SELECT x-1, y, v FROM matrix WHERE x > 2
-UNION SELECT x, y, 0 FROM matrix WHERE x =3;
+UNION
+SELECT x, y, 0 FROM matrix WHERE x =3;
diff --git a/sql/test/sciql/Tests/sciql12.sql b/sql/test/sciql/Tests/sciql12.sql
--- a/sql/test/sciql/Tests/sciql12.sql
+++ b/sql/test/sciql/Tests/sciql12.sql
@@ -1,3 +1,7 @@
 SELECT [x], [y], avg(v) FROM matrix GROUP BY matrix[x:x+2][y:y+2];
 SELECT [x], [y], avg(v) FROM matrix GROUP BY DISTINCT matrix[x:x+2][y:y+2];
-SELECT [x], [y], avg(v) FROM matrix GROUP BY matrix[x-1:x+1][y-1:y+1];
+SELECT [x], [y], avg(v) FROM matrix
+WHERE x > 0 AND y > 0
+GROUP BY DISTINCT matrix[x][y], matrix[x-1][y], matrix[x+1][y], 
matrix[x][y-1], matrix[x][y+1];
+
+SELECT [x], [y], avg(v) FROM matrix GROUP BY vmatrix[x-1:x+1][y-1:y+1];
diff --git a/sql/test/sciql/Tests/sciql13.sql b/sql/test/sciql/Tests/sciql13.sql
--- a/sql/test/sciql/Tests/sciql13.sql
+++ b/sql/test/sciql/Tests/sciql13.sql
@@ -1,1 +1,1 @@
-SELECT [x],sum(v) FROM matrix GROUP BY DISTINCT matrix[x][y: *];
+SELECT [x], sum(v) FROM matrix GROUP BY matrix[x][*];
diff --git a/sql/test/sciql/Tests/sciql14.sql b/sql/test/sciql/Tests/sciql14.sql
--- a/sql/test/sciql/Tests/sciql14.sql
+++ b/sql/test/sciql/Tests/sciql14.sql
@@ -1,3 +1,3 @@
-SELECT x, y, (matrix[x-1][y].v + matrix[x+1][y].v + matrix[x][y-1].v + 
matrix[x][y+1].v + matrix[x][y].v)/5
-FROM matrix[0:5][0:5] 
-GROUP BY matrix[x][y], matrix[x-1][y], matrix[x+1][y], matrix[x][y-1], 
matrix[x][y+1];
+SELECT [x], [y], AVG(v)
+FROM vmatrix[0:4][0:4] 
+GROUP BY vmatrix[x][y], vmatrix[x-1][y], vmatrix[x+1][y], vmatrix[x][y-1], 
vmatrix[x][y+1];
diff --git a/sql/test/sciql/Tests/sciql15.sql b/sql/test/sciql/Tests/sciql15.sql
--- a/sql/test/sciql/Tests/sciql15.sql
+++ b/sql/test/sciql/Tests/sciql15.sql
@@ -1,2 +1,5 @@
--- SELECT distance(A, ?V), A.* FROM matrix AS A GROUP BY matrix[x][*] AS A;
-SELECT distance(A, A), A.* FROM matrix AS A GROUP BY matrix[x][*];
+SELECT x, distance(matrix, ?V) AS dist
+FROM matrix
+GROUP BY matrix[x][*];
+ORDER BY dist
+LIMIT 10;
diff --git a/sql/test/sciql/Tests/sciql17.sql b/sql/test/sciql/Tests/sciql17.sql
--- a/sql/test/sciql/Tests/sciql17.sql
+++ b/sql/test/sciql/Tests/sciql17.sql
@@ -1,5 +1,8 @@
 ALTER ARRAY matrix ADD r float DEFAULT sqrt( power(x,2) + power(y,2));
+
+-- FIXME: 1) where does 'r' come from?
+--        2) in CASE: what is x = 0 and y <> 0?
 ALTER ARRAY matrix ADD theta float 
        DEFAULT (CASE WHEN x=0 AND y=0 THEN 0
        WHEN x> 0 THEN arcsin( CAST( x AS float) / r) 
-       WHEN  x< 0 THEN -arcsin( CAST( x AS float) / r) + PI() END);
+       WHEN x< 0 THEN -arcsin( CAST( x AS float) / r) + PI() END);
diff --git a/sql/test/sciql/Tests/sciql18.sql b/sql/test/sciql/Tests/sciql18.sql
--- a/sql/test/sciql/Tests/sciql18.sql
+++ b/sql/test/sciql/Tests/sciql18.sql
@@ -1,4 +1,17 @@
-CREATE ARRAY tmp(x integer DIMENSION, y integer DIMENSION, v float);
-INSERT INTO tmp SELECT x, y, avg(v) 
+CREATE ARRAY tmp(
+    x integer DIMENSION,
+    y integer DIMENSION,
+    v float) AS
+SELECT x/2, y/2, avg(v) 
 FROM matrix 
-GROUP BY DISTINCT matrix[x:x+2][y:y+2];
+GROUP BY DISTINCT matrix[x:x+2][y:y+2]
+WITH DATA;
+
+CREATE ARRAY tmp2(
+    x integer DIMENSION[2],
+    y integer DIMENSION[2],
+    v float);
+INSERT INTO tmp2(v)
+  SELECT avg(v) FROM matrix 
+  GROUP BY DISTINCT matrix[x:x+2][y:y+2];
+
diff --git a/sql/test/sciql/Tests/sciql19.sql b/sql/test/sciql/Tests/sciql19.sql
--- a/sql/test/sciql/Tests/sciql19.sql
+++ b/sql/test/sciql/Tests/sciql19.sql
@@ -1,18 +1,20 @@
-CREATE SEQUENCE rng AS integer START WITH 0 INCREMENT BY 1 MAXVALUE 7;
+CREATE SEQUENCE whiterange AS integer START WITH 0 INCREMENT BY 2 MAXVALUE 62;
+CREATE SEQUENCE blackrange AS integer START WITH 1 INCREMENT BY 2 MAXVALUE 63;
 
 CREATE ARRAY white (
-   i integer DIMENSION[rng],
-   j integer DIMENSION[rng],
+   i integer DIMENSION[whiterange],
    color char(5) DEFAULT 'white'
 );
-CREATE ARRAY black (LIKE white);
-CREATE ARRAY chessboard(
-   i integer DIMENSION[rng],
-   j integer DIMENSION[rng],
-   white char(5));
-INSERT INTO chessboard
-SELECT [i], [j], color FROM white
-   WHERE ( i * 8 + j) / 2 = 0
-UNION
-SELECT [i], [j], color FROM black
-   WHERE ( i * 8 + j) / 2 ;
+CREATE ARRAY black (
+   i integer DIMENSION[blackrange],
+   color char(5) DEFAULT 'black'
+);
+
+CREATE ARRAY zippe r(
+   i integer DIMENSION[64],
+   color char(5));
+INSERT INTO zipper
+  SELECT i, color FROM white
+  UNION
+  SELECT i, color FROM black
+
diff --git a/sql/test/sciql/Tests/sciql20.sql b/sql/test/sciql/Tests/sciql20.sql
--- a/sql/test/sciql/Tests/sciql20.sql
+++ b/sql/test/sciql/Tests/sciql20.sql
@@ -1,7 +1,12 @@
 CREATE SEQUENCE seq AS integer START WITH 0 INCREMENT BY 1 MAXVALUE 10;
-CREATE FUNCTION random(n integer) 
-RETURNS ARRAY( i integer DIMENSION[seq], v float)
-       RETURN SELECT seq, rand() FROM SEQUENCES seq;
-CREATE FUNCTION transpose ( a ARRAY( i integer DIMENSION, j integer DIMENSION, 
v float))
+
+-- FIXME: we can't select from a sequence...
+CREATE FUNCTION random () 
+  RETURNS ARRAY( i integer DIMENSION, v float)
+BEGIN RETURN SELECT [seq], rand() FROM SEQUENCES seq; END;
+
+CREATE FUNCTION transpose (
+  a ARRAY (i integer DIMENSION,
+           j integer DIMENSION, v float))
 RETURNS ARRAY( i integer DIMENSION, j integer DIMENSION, v float) 
-BEGIN  RETURN SELECT [i],[j], a[j][i].v FROM a; END;
+BEGIN RETURN SELECT [j],[i], a[i][j].v FROM a; END;
diff --git a/sql/test/sciql/Tests/sciql21.sql b/sql/test/sciql/Tests/sciql21.sql
--- a/sql/test/sciql/Tests/sciql21.sql
+++ b/sql/test/sciql/Tests/sciql21.sql
@@ -1,3 +1,5 @@
-CREATE FUNCTION markov( a ARRAY( x int DIMENSION, y int DIMENSION, f float), 
steps integer)
+CREATE FUNCTION markov(
+  input ARRAY( x int DIMENSION, y int DIMENSION, f float),
+  steps integer)
 RETURNS ARRAY( x int DIMENSION, y int DIMENSION, f float) 
 EXTERNAL NAME ’markov.loop’;
diff --git a/sql/test/sciql/Tests/sciql22.sql b/sql/test/sciql/Tests/sciql22.sql
--- a/sql/test/sciql/Tests/sciql22.sql
+++ b/sql/test/sciql/Tests/sciql22.sql
@@ -1,2 +1,47 @@
 CREATE ARRAY landsat ( channel integer DIMENSION[7], x integer 
DIMENSION[1024], y integer DIMENSION[1024], v integer);
 UPDATE landsat SET v = noise(v,delta) WHERE channel = 6 and mod(x,6) = 1;
+
+CREATE FUNCTION tvi (b3 REAL, b4 REAL) RETURNS REAL
+RETURN POWER( ((b4 - b3)/ (b4 + b3) + 0.5), 0.5);
+
+CREATE FUNCTION conv (
+    a ARRAY(i INTEGER DIMENSION[3], j INTEGER DIMENSION[3], v FLOAT))
+RETURNS FLOAT
+BEGIN
+  DECLARE s1 FLOAT, s2 FLOAT, z FLOAT;
+  SET s1 = (a[0][0].v + a[0][2].v +
+            a[2][0].v + a[2][2].v)/4.0;
+  SET s2 = (a[0][1].v + a[1][0].v +
+            a[1][2].v + a[2][1].v)/4.0;
+  SET z = 2 * ABS(s1 - s2);
+  IF ((ABS(a[1][1].v - s1)> z) or (ABS(a[1][1].v - s2)> z))
+  THEN RETURN s2;
+  ELSE RETURN a[1][1].v;
+  END IF;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to