Changeset: b76b413d0151 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b76b413d0151
Modified Files:
        sql/backends/monet5/generator/Tests/joins01.sql
Branch: generator
Log Message:

Temporal join tests


diffs (39 lines):

diff --git a/sql/backends/monet5/generator/Tests/joins01.sql 
b/sql/backends/monet5/generator/Tests/joins01.sql
--- a/sql/backends/monet5/generator/Tests/joins01.sql
+++ b/sql/backends/monet5/generator/Tests/joins01.sql
@@ -1,4 +1,32 @@
-select * from generate_series(0,3,1) as A, generate_series(0,6,2) as B;
+-- To be done tests.
+-- Using an 'int' rather then a 'tinyint' calls for casting the generated 
values first
+-- The two join cases illustrate how a join could be optimized by 'looking' up 
the correct value.
 
-select * from generate_series(0,3,1) as A, generate_series(0,6,2) as B
-where A.value < B.value;
+create table tmp(i timestamp);
+insert into tmp values
+(timestamp '2008-03-01 00:00'),
+(timestamp '2008-03-01 10:00'),
+(timestamp '2008-03-01 20:00');
+select * from tmp;
+
+select * from generate_series(timestamp '2008-03-01 00:00',timestamp 
'2008-03-04 12:00',cast( '10' as interval hour)) X, tmp Y where X.value = Y.i;
+select * from generate_series(timestamp '2008-03-01 00:00',timestamp 
'2008-03-04 12:00',cast( '10' as interval hour)) X, tmp Y where Y.i = X.value;
+
+select * from generate_series(timestamp '2008-03-01 00:00',timestamp 
'2008-03-04 12:00',cast( '10' as interval hour)) X, tmp Y where X.value = Y.i 
and value < timestamp '2008-03-01 20:00';
+select * from generate_series(timestamp '2008-03-01 00:00',timestamp 
'2008-03-04 12:00',cast( '10' as interval hour)) X, tmp Y where Y.i = X.value  
and value < timestamp '2008-03-01 20:00';
+
+select * from generate_series(timestamp '2008-03-01 00:00',timestamp 
'2008-03-04 12:00',cast( '10' as interval hour)) as  X, tmp Y where X.value = 
Y.i and value < timestamp '2008-03-01 20:00' and value > timestamp '200-03-01 
00:00';
+
+-- negative range
+select * from generate_series(timestamp '2008-03-04 18:00',timestamp 
'2008-03-01 00:00',cast( '-10' as interval hour)) X;
+select * from generate_series(timestamp '2008-03-04 18:00',timestamp 
'2008-03-01 00:00',cast( '-10' as interval hour)) X, tmp Y where X.value = Y.i;
+select * from generate_series(timestamp '2008-03-04 18:00',timestamp 
'2008-03-01 00:00',cast( '-10' as interval hour)) X, tmp Y where Y.i = X.value;
+
+select * from generate_series(timestamp '2008-03-04 18:00',timestamp 
'2008-03-01 00:00',cast( '-10' as interval hour)) X, tmp Y where X.value = Y.i
+and value > timestamp '2008-03-01 09:00';
+
+select * from generate_series(timestamp '2008-03-04 18:00',timestamp 
'2008-03-01 00:00',cast( '-10' as interval hour)) X, tmp Y where X.value = Y.i
+and value > timestamp '2008-03-01 09:00'
+and value < timestamp '2008-03-01 20:00';
+
+drop table tmp;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to