Cross join Testcases (#535)

diff --git a/framework/resources/Functional/crossjoin/aggNCrossJoin3.e_tsv b/framework/resources/Functional/crossjoin/aggNCrossJoin3.e_tsv
new file mode 100644
index 0000000..cc6308c
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/aggNCrossJoin3.e_tsv
@@ -0,0 +1 @@
+1500	15000
diff --git a/framework/resources/Functional/crossjoin/aggNCrossJoin3.sql b/framework/resources/Functional/crossjoin/aggNCrossJoin3.sql
new file mode 100644
index 0000000..1bfbfb3
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/aggNCrossJoin3.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select * from (select count(*) from customer) as c1,(select count(*) from orders) as o1;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/aggNSameTableCrossJoin7.e_tsv b/framework/resources/Functional/crossjoin/aggNSameTableCrossJoin7.e_tsv
new file mode 100644
index 0000000..06ba245
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/aggNSameTableCrossJoin7.e_tsv
@@ -0,0 +1 @@
+2250000
diff --git a/framework/resources/Functional/crossjoin/aggNSameTableCrossJoin7.sql b/framework/resources/Functional/crossjoin/aggNSameTableCrossJoin7.sql
new file mode 100644
index 0000000..79f7bed
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/aggNSameTableCrossJoin7.sql
@@ -0,0 +1,5 @@
+set `planner.enable_multiphase_agg` =  false;
+set `planner.enable_nljoin_for_scalar_only` = false;
+select count(*) from customer c1 cross join customer c2 limit 10;
+reset `planner.enable_multiphase_agg`;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/aggOnBothCrossJoin12.e_tsv b/framework/resources/Functional/crossjoin/aggOnBothCrossJoin12.e_tsv
new file mode 100644
index 0000000..4cd28f1
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/aggOnBothCrossJoin12.e_tsv
@@ -0,0 +1 @@
+4.6542856442688E9
diff --git a/framework/resources/Functional/crossjoin/aggOnBothCrossJoin12.sql b/framework/resources/Functional/crossjoin/aggOnBothCrossJoin12.sql
new file mode 100644
index 0000000..94b607c
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/aggOnBothCrossJoin12.sql
@@ -0,0 +1,5 @@
+set `planner.enable_multiphase_agg` =  false;
+set `planner.enable_nljoin_for_scalar_only` = false;
+SELECT MAX(a.c_acctbal*b.o_totalprice) FROM customer a CROSS JOIN orders b limit 10;
+reset `planner.enable_multiphase_agg`;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/crossJoin1.e_tsv b/framework/resources/Functional/crossjoin/crossJoin1.e_tsv
new file mode 100644
index 0000000..4b67923
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/crossJoin1.e_tsv
@@ -0,0 +1,10 @@
+1	Customer#000000001	IVhzIApeRb ot,c,E	15	25-989-741-2988	711.56	BUILDING	to the even, regular platelets. regular, ironic epitaphs nag e	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+2	Customer#000000002	XSTf4,NCwDVaWNe6tEgvwfmRchLXak	13	23-768-687-3665	121.65	AUTOMOBILE	l accounts. blithely ironic theodolites integrate boldly: caref	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+3	Customer#000000003	MG9kdTD2WBHm	1	11-719-748-3364	7498.12	AUTOMOBILE	 deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+4	Customer#000000004	XxVSJsLAGtn	4	14-128-190-5944	2866.83	MACHINERY	 requests. final, regular ideas sleep final accou	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+5	Customer#000000005	KvpyuHCplrB84WgAiGV6sYpZq7Tj	3	13-750-942-6364	794.47	HOUSEHOLD	n accounts will have to unwind. foxes cajole accor	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+6	Customer#000000006	sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn	20	30-114-968-4951	7638.57	AUTOMOBILE	tions. even deposits boost according to the slyly bold packages. final accounts cajole requests. furious	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+7	Customer#000000007	TcGe5gaZNgVePxU5kRrvXBfkasDTea	18	28-190-982-9759	9561.95	AUTOMOBILE	ainst the ironic, express theodolites. express, even pinto beans among the exp	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+8	Customer#000000008	I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5	17	27-147-574-9335	6819.74	BUILDING	among the slyly regular theodolites kindle blithely courts. carefully even theodolites haggle slyly along the ide	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+9	Customer#000000009	xKiAFTjUsCuxfeleNqefumTrjS	8	18-338-906-3675	8324.07	FURNITURE	r theodolites according to the requests wake thinly excuses: pending requests haggle furiousl	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+10	Customer#000000010	6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2	5	15-741-346-9870	2753.54	HOUSEHOLD	es regular deposits haggle. fur	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
diff --git a/framework/resources/Functional/crossjoin/crossJoin1.sql b/framework/resources/Functional/crossjoin/crossJoin1.sql
new file mode 100644
index 0000000..510545f
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/crossJoin1.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select * from customer cross join orders limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/crossJoin2.e_tsv b/framework/resources/Functional/crossjoin/crossJoin2.e_tsv
new file mode 100644
index 0000000..4b67923
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/crossJoin2.e_tsv
@@ -0,0 +1,10 @@
+1	Customer#000000001	IVhzIApeRb ot,c,E	15	25-989-741-2988	711.56	BUILDING	to the even, regular platelets. regular, ironic epitaphs nag e	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+2	Customer#000000002	XSTf4,NCwDVaWNe6tEgvwfmRchLXak	13	23-768-687-3665	121.65	AUTOMOBILE	l accounts. blithely ironic theodolites integrate boldly: caref	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+3	Customer#000000003	MG9kdTD2WBHm	1	11-719-748-3364	7498.12	AUTOMOBILE	 deposits eat slyly ironic, even instructions. express foxes detect slyly. blithely even accounts abov	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+4	Customer#000000004	XxVSJsLAGtn	4	14-128-190-5944	2866.83	MACHINERY	 requests. final, regular ideas sleep final accou	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+5	Customer#000000005	KvpyuHCplrB84WgAiGV6sYpZq7Tj	3	13-750-942-6364	794.47	HOUSEHOLD	n accounts will have to unwind. foxes cajole accor	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+6	Customer#000000006	sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn	20	30-114-968-4951	7638.57	AUTOMOBILE	tions. even deposits boost according to the slyly bold packages. final accounts cajole requests. furious	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+7	Customer#000000007	TcGe5gaZNgVePxU5kRrvXBfkasDTea	18	28-190-982-9759	9561.95	AUTOMOBILE	ainst the ironic, express theodolites. express, even pinto beans among the exp	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+8	Customer#000000008	I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5	17	27-147-574-9335	6819.74	BUILDING	among the slyly regular theodolites kindle blithely courts. carefully even theodolites haggle slyly along the ide	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+9	Customer#000000009	xKiAFTjUsCuxfeleNqefumTrjS	8	18-338-906-3675	8324.07	FURNITURE	r theodolites according to the requests wake thinly excuses: pending requests haggle furiousl	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
+10	Customer#000000010	6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2	5	15-741-346-9870	2753.54	HOUSEHOLD	es regular deposits haggle. fur	1	370	O	172799.49	1996-01-02	5-LOW	Clerk#000000951	0	nstructions sleep furiously among 
diff --git a/framework/resources/Functional/crossjoin/crossJoin2.sql b/framework/resources/Functional/crossjoin/crossJoin2.sql
new file mode 100644
index 0000000..b0ad16c
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/crossJoin2.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select * from customer,orders limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/crossJoinThenFilter8.e_tsv b/framework/resources/Functional/crossjoin/crossJoinThenFilter8.e_tsv
new file mode 100644
index 0000000..1c00954
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/crossJoinThenFilter8.e_tsv
@@ -0,0 +1,10 @@
+294	6
+294	37
+294	128
+294	129
+294	130
+294	134
+294	164
+294	194
+294	292
+294	293
diff --git a/framework/resources/Functional/crossjoin/crossJoinThenFilter8.sql b/framework/resources/Functional/crossjoin/crossJoinThenFilter8.sql
new file mode 100644
index 0000000..128fbf0
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/crossJoinThenFilter8.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,o.o_orderkey from customer c cross join orders o where year(o.o_orderdate) = 1992 order by c.C_ACCTBAL,c.c_custkey,o.o_orderkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/distinctThenCrossJoin11.e_tsv b/framework/resources/Functional/crossjoin/distinctThenCrossJoin11.e_tsv
new file mode 100644
index 0000000..551d7f9
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/distinctThenCrossJoin11.e_tsv
@@ -0,0 +1,10 @@
+1	F
+1	O
+1	P
+2	F
+2	O
+2	P
+3	F
+3	O
+3	P
+4	F
diff --git a/framework/resources/Functional/crossjoin/distinctThenCrossJoin11.sql b/framework/resources/Functional/crossjoin/distinctThenCrossJoin11.sql
new file mode 100644
index 0000000..8fb1e1a
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/distinctThenCrossJoin11.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,o.o_orderstatus from (select distinct(o_orderstatus) from orders) o cross join customer c order by c.c_custkey,o.o_orderstatus limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/filterThenCrossJoin9.e_tsv b/framework/resources/Functional/crossjoin/filterThenCrossJoin9.e_tsv
new file mode 100644
index 0000000..6ac0943
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/filterThenCrossJoin9.e_tsv
@@ -0,0 +1,10 @@
+2	2
+2	4
+2	5
+2	6
+2	33
+2	34
+2	36
+2	37
+2	38
+2	64
diff --git a/framework/resources/Functional/crossjoin/filterThenCrossJoin9.sql b/framework/resources/Functional/crossjoin/filterThenCrossJoin9.sql
new file mode 100644
index 0000000..5b88b8d
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/filterThenCrossJoin9.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c1.c_custkey,o1.o_orderkey from (select * from customer where c_acctbal < 150) as c1 cross join (select * from orders where o_totalprice < 170000) as o1 order by c1.c_custkey,o1.o_orderkey limit 10; 
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/innerAndCrossJoin14.e_tsv b/framework/resources/Functional/crossjoin/innerAndCrossJoin14.e_tsv
new file mode 100644
index 0000000..066c013
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/innerAndCrossJoin14.e_tsv
@@ -0,0 +1,10 @@
+1	1152
+1	1378
+1	1378
+1	1378
+1	1378
+1	1572
+1	2342
+1	2342
+1	2342
+1	2343
diff --git a/framework/resources/Functional/crossjoin/innerAndCrossJoin14.sql.fail b/framework/resources/Functional/crossjoin/innerAndCrossJoin14.sql.fail
new file mode 100644
index 0000000..563dfbd
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/innerAndCrossJoin14.sql.fail
@@ -0,0 +1,5 @@
+set `planner.enable_multiphase_agg` =  false;
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,o1.o_orderkey from customer c cross join (select * from orders o inner join lineitem l on cast(o.o_orderkey as int) = cast(l.l_orderkey as int) limit 10 ) as o1 order by c.c_custkey,o1.o_orderkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
+reset `planner.enable_multiphase_agg`;
diff --git a/framework/resources/Functional/crossjoin/leftAndCrossJoin15.e_tsv b/framework/resources/Functional/crossjoin/leftAndCrossJoin15.e_tsv
new file mode 100644
index 0000000..82f8548
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/leftAndCrossJoin15.e_tsv
@@ -0,0 +1,10 @@
+1	33
+1	33
+1	33
+1	33
+1	34
+1	34
+1	34
+1	35
+1	35
+1	35
diff --git a/framework/resources/Functional/crossjoin/leftAndCrossJoin15.sql.fail b/framework/resources/Functional/crossjoin/leftAndCrossJoin15.sql.fail
new file mode 100644
index 0000000..b8b45a2
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/leftAndCrossJoin15.sql.fail
@@ -0,0 +1,5 @@
+alter system set `planner.enable_multiphase_agg` =  false;
+alter system set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,o1.o_orderkey from customer c cross join (select * from orders o left join lineitem l on cast(o.o_orderkey as int) = cast(l.l_orderkey as int) limit 10 ) as o1 order by c.c_custkey,o1.o_orderkey limit 10;
+reset `planner.enable_multiphase_agg`;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/limitThenCrossJoin10.e_tsv b/framework/resources/Functional/crossjoin/limitThenCrossJoin10.e_tsv
new file mode 100644
index 0000000..56cf0c5
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/limitThenCrossJoin10.e_tsv
@@ -0,0 +1,10 @@
+1	1
+1	2
+1	3
+1	4
+1	5
+1	6
+1	7
+1	32
+1	33
+1	34
diff --git a/framework/resources/Functional/crossjoin/limitThenCrossJoin10.sql b/framework/resources/Functional/crossjoin/limitThenCrossJoin10.sql
new file mode 100644
index 0000000..21f6475
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/limitThenCrossJoin10.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c1.c_custkey,o1.o_orderkey from (select * from customer limit 30) as c1 cross join (select * from orders limit 30) as o1 order by c1.c_custkey,o1.o_orderkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/projectBothTables4.e_tsv b/framework/resources/Functional/crossjoin/projectBothTables4.e_tsv
new file mode 100644
index 0000000..56cf0c5
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/projectBothTables4.e_tsv
@@ -0,0 +1,10 @@
+1	1
+1	2
+1	3
+1	4
+1	5
+1	6
+1	7
+1	32
+1	33
+1	34
diff --git a/framework/resources/Functional/crossjoin/projectBothTables4.sql b/framework/resources/Functional/crossjoin/projectBothTables4.sql
new file mode 100644
index 0000000..ded3f72
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/projectBothTables4.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,o.o_orderkey from customer c cross join orders o order by c.c_custkey,o.o_orderkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/projectOneTable5.e_tsv b/framework/resources/Functional/crossjoin/projectOneTable5.e_tsv
new file mode 100644
index 0000000..d3d1712
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/projectOneTable5.e_tsv
@@ -0,0 +1,10 @@
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
diff --git a/framework/resources/Functional/crossjoin/projectOneTable5.sql b/framework/resources/Functional/crossjoin/projectOneTable5.sql
new file mode 100644
index 0000000..c447395
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/projectOneTable5.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey from customer c cross join orders o order by c.c_custkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/rightAndCrossJoin16.e_tsv b/framework/resources/Functional/crossjoin/rightAndCrossJoin16.e_tsv
new file mode 100644
index 0000000..066c013
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/rightAndCrossJoin16.e_tsv
@@ -0,0 +1,10 @@
+1	1152
+1	1378
+1	1378
+1	1378
+1	1378
+1	1572
+1	2342
+1	2342
+1	2342
+1	2343
diff --git a/framework/resources/Functional/crossjoin/rightAndCrossJoin16.sql.fail b/framework/resources/Functional/crossjoin/rightAndCrossJoin16.sql.fail
new file mode 100644
index 0000000..bcee458
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/rightAndCrossJoin16.sql.fail
@@ -0,0 +1,5 @@
+set `planner.enable_multiphase_agg` =  false;
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,o1.o_orderkey from customer c cross join (select * from orders o right join lineitem l on cast(o.o_orderkey as int) = cast(l.l_orderkey as int) limit 10 ) as o1 order by c.c_custkey,o1.o_orderkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
+reset `planner.enable_multiphase_agg`;
diff --git a/framework/resources/Functional/crossjoin/sameTableCrossJoin6.e_tsv b/framework/resources/Functional/crossjoin/sameTableCrossJoin6.e_tsv
new file mode 100644
index 0000000..3cf7fba
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/sameTableCrossJoin6.e_tsv
@@ -0,0 +1,10 @@
+1	1
+1	2
+1	3
+1	4
+1	5
+1	6
+1	7
+1	8
+1	9
+1	10
diff --git a/framework/resources/Functional/crossjoin/sameTableCrossJoin6.sql b/framework/resources/Functional/crossjoin/sameTableCrossJoin6.sql
new file mode 100644
index 0000000..ab12a7a
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/sameTableCrossJoin6.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select c.c_custkey,c1.c_custkey from customer c cross join customer c1 order by c.c_custkey,c1.c_custkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/semiAndCrossJoin13.e_tsv b/framework/resources/Functional/crossjoin/semiAndCrossJoin13.e_tsv
new file mode 100644
index 0000000..3d35f27
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/semiAndCrossJoin13.e_tsv
@@ -0,0 +1,10 @@
+874.89	1
+874.89	2
+874.89	3
+874.89	4
+874.89	5
+874.89	6
+874.89	7
+874.89	8
+874.89	9
+874.89	10
diff --git a/framework/resources/Functional/crossjoin/semiAndCrossJoin13.sql b/framework/resources/Functional/crossjoin/semiAndCrossJoin13.sql
new file mode 100644
index 0000000..4faba23
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/semiAndCrossJoin13.sql
@@ -0,0 +1,3 @@
+set `planner.enable_nljoin_for_scalar_only` = false;
+select b.o_totalprice,d.c_custkey from (select orders.o_totalprice from orders where cast(orders.o_custkey as int) in (select cast(customer.c_custkey as int) from customer) order by orders.o_totalprice limit 10) as b cross join customer d order by b.o_totalprice,d.c_custkey limit 10;
+reset `planner.enable_nljoin_for_scalar_only`;
diff --git a/framework/resources/Functional/crossjoin/tpch_sf001Parquet.json b/framework/resources/Functional/crossjoin/tpch_sf001Parquet.json
new file mode 100755
index 0000000..55bad40
--- /dev/null
+++ b/framework/resources/Functional/crossjoin/tpch_sf001Parquet.json
@@ -0,0 +1,62 @@
+{
+    "testId": "crossJoinTpchSf001Parquet",
+    "type": "group",
+    "description": "Test cross join queries for tpch sf001 parquet data via jdbc",
+    "submit-type": "jdbc",
+    "categories": [
+        "functional"
+    ],
+    "matrices": [
+        {
+            "query-file": ".*.sql",
+            "schema": "dfs.drillTestDirTpch01Parquet",
+            "output-format": "tsv",
+            "expected-file": ".*.e_tsv",
+	    "verification-type": [
+                "in-memory"
+            ]
+        }
+    ],
+    "datasources": [
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/customer.parquet",
+            "dest": "Tpch0.01/parquet/customer/customer.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/lineitem.parquet",
+            "dest": "Tpch0.01/parquet/lineitem/lineitem.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/nation.parquet",
+            "dest": "Tpch0.01/parquet/nation/nation.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/region.parquet",
+            "dest": "Tpch0.01/parquet/region/region.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/part.parquet",
+            "dest": "Tpch0.01/parquet/part/part.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/partsupp.parquet",
+            "dest": "Tpch0.01/parquet/partsupp/partsupp.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/supplier.parquet",
+            "dest": "Tpch0.01/parquet/supplier/supplier.parquet"
+        },
+        {
+            "mode": "cp",
+            "src": "Datasources/Tpch0.01/parquet/orders.parquet",
+            "dest": "Tpch0.01/parquet/orders/orders.parquet"
+        }
+    ]
+}