Changeset: 5295bbd56e5b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5295bbd56e5b
Added Files:
        sql/test/rel-optimizers/Tests/replicas-base.test
        sql/test/rel-optimizers/Tests/replicas-join.reqtests
        sql/test/rel-optimizers/Tests/replicas-join.test
Branch: default
Log Message:

Adds tests with replica join


diffs (104 lines):

diff --git a/sql/test/rel-optimizers/Tests/replicas-base.test 
b/sql/test/rel-optimizers/Tests/replicas-base.test
new file mode 100644
--- /dev/null
+++ b/sql/test/rel-optimizers/Tests/replicas-base.test
@@ -0,0 +1,28 @@
+statement ok
+create table foo_local (n int, m text)
+
+statement ok
+insert into foo_local values (1, 'hello'), (2, 'world'), (3, '!!')
+
+statement ok
+create remote table foo_r1 (n int, m text) on 
'mapi:monetdb://localhost:50002/node2'
+
+statement ok
+create remote table foo_r2 (n int, m text) on 
'mapi:monetdb://localhost:50003/node3'
+
+
+statement ok
+create table bar_local (n int, m text)
+
+statement ok
+insert into bar_local values (10, 'alice'), (2, 'bob'), (3, 'tom'), (4, 
'jerry')
+
+statement ok
+create remote table bar_r1 (n int, m text) on 
'mapi:monetdb://localhost:50002/node2'
+
+statement ok
+create remote table bar_r2 (n int, m text) on 
'mapi:monetdb://localhost:50003/node3'
+
+statement ok
+create remote table buz_rmt (l int) on 'mapi:monetdb://localhost:50002/node2'
+
diff --git a/sql/test/rel-optimizers/Tests/replicas-join.reqtests 
b/sql/test/rel-optimizers/Tests/replicas-join.reqtests
new file mode 100644
--- /dev/null
+++ b/sql/test/rel-optimizers/Tests/replicas-join.reqtests
@@ -0,0 +1,1 @@
+replicas-base
diff --git a/sql/test/rel-optimizers/Tests/replicas-join.test 
b/sql/test/rel-optimizers/Tests/replicas-join.test
new file mode 100644
--- /dev/null
+++ b/sql/test/rel-optimizers/Tests/replicas-join.test
@@ -0,0 +1,60 @@
+statement ok
+create replica table foo_rpl (n int, m text)
+
+statement ok
+alter table foo_rpl add table foo_local
+
+statement ok
+alter table foo_rpl add table foo_r1
+
+statement ok
+alter table foo_rpl add table foo_r2
+
+statement ok
+create replica table bar_rpl (n int, m text)
+
+statement ok
+alter table bar_rpl add table bar_local
+
+statement ok
+alter table bar_rpl add table bar_r1
+
+statement ok
+alter table bar_rpl add table bar_r2
+
+query T nosort
+plan select * from foo_rpl
+----
+project (
+| table("sys"."foo_local") [ "foo_local"."n" as "foo_rpl"."n", "foo_local"."m" 
as "foo_rpl"."m", "foo_local"."%TID%" NOT NULL UNIQUE as "foo_rpl"."%TID%" ]
+) [ "foo_rpl"."n", "foo_rpl"."m" ]
+
+query T nosort
+plan select * from foo_rpl, bar_rpl
+----
+project (
+| crossproduct (
+| | table("sys"."foo_local") [ "foo_local"."n" UNIQUE as "foo_rpl"."n", 
"foo_local"."m" as "foo_rpl"."m", "foo_local"."%TID%" NOT NULL UNIQUE as 
"foo_rpl"."%TID%" ],
+| | table("sys"."bar_local") [ "bar_local"."n" as "bar_rpl"."n", 
"bar_local"."m" as "bar_rpl"."m", "bar_local"."%TID%" NOT NULL UNIQUE as 
"bar_rpl"."%TID%" ]
+| ) [  ]
+) [ "foo_rpl"."n", "foo_rpl"."m", "bar_rpl"."n", "bar_rpl"."m" ]
+
+# In the next test and given the implentation of the remote optimizer we 
+# expect the replicas to be resolved to the remote tables. The optimizer 
+# could be in principle be adapted to resolve the replica crossproduct
+# to local tables
+query T nosort
+plan select * from foo_rpl, bar_rpl, buz_rmt
+----
+table (
+| project (
+| | crossproduct (
+| | | crossproduct (
+| | | | REMOTE("sys"."foo_r1") [ "foo_r1"."n" as "foo_rpl"."n", "foo_r1"."m" 
as "foo_rpl"."m", "foo_r1"."%TID%" NOT NULL UNIQUE as "foo_rpl"."%TID%" ],
+| | | | REMOTE("sys"."bar_r1") [ "bar_r1"."n" as "bar_rpl"."n", "bar_r1"."m" 
as "bar_rpl"."m", "bar_r1"."%TID%" NOT NULL UNIQUE as "bar_rpl"."%TID%" ]
+| | | ) [  ],
+| | | REMOTE("sys"."buz_rmt") [ "buz_rmt"."l" ]
+| | ) [  ]
+| ) [ "foo_rpl"."n", "foo_rpl"."m", "bar_rpl"."n", "bar_rpl"."m", 
"buz_rmt"."l" ] REMOTE mapi:monetdb://localhost:50002/node2
+) [ "foo_rpl"."n", "foo_rpl"."m", "bar_rpl"."n", "bar_rpl"."m", "buz_rmt"."l" ]
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to