DRILL-5796: Added filter pushdown tests for files with multiple row groups. (#519)
Before changes:
```
Functional/filter/pushdown
|_data
|_plan
|_regex
|_regex_no_order
```
After changes:
```
Functional/filter/pushdown
|_boolean_null
|_cast
|_complex_fields
|_general
|_item_star_operator
|_multiple_row_groups
|_union
```
Details:
* Added new tests to multiple_row_groups folder. They verify that filter pushdown is working for parquet files with more than one row group.
* Moved existing tests to separate folders depending on a feature tested.
* Combined data and plan verifications within single directories.
* Moved schema definitions from the queries to the json files (like dfs.drillTestDir).
* Changed extension of some tests to match the guidelines (*.sql.explain, *.plan)diff --git a/framework/resources/Datasources/parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet b/framework/resources/Datasources/parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet
new file mode 100644
index 0000000..0a79dc9
--- /dev/null
+++ b/framework/resources/Datasources/parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet
Binary files differ
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_eq_false.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_eq_false.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.sql
new file mode 100644
index 0000000..04cb95d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.sql.explain
new file mode 100644
index 0000000..c00768c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_eq_false.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_false_and_is_not_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_false_and_is_not_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql
new file mode 100644
index 0000000..8f470a0
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false and c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql.explain
new file mode 100644
index 0000000..a8b5954
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false and c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.sql
new file mode 100644
index 0000000..55030e0
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.sql.explain
new file mode 100644
index 0000000..5769fda
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_null.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_true.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_true.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.sql
new file mode 100644
index 0000000..7e87cf6
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.sql.explain
new file mode 100644
index 0000000..d8d8fd3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_not_true.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.sql
new file mode 100644
index 0000000..09618ae
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.sql.explain
new file mode 100644
index 0000000..85fce56
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_null.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_true.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_true.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.sql
new file mode 100644
index 0000000..21fd6a5
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.sql.explain
new file mode 100644
index 0000000..8741b84
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_is_true.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_eq_false.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_eq_false.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.sql
new file mode 100644
index 0000000..60c97d1
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.sql.explain
new file mode 100644
index 0000000..a1b55e8
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_eq_false.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.sql
new file mode 100644
index 0000000..d58a876
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.sql.explain
new file mode 100644
index 0000000..0c9df6d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false_or_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false_or_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql
new file mode 100644
index 0000000..b3000c7
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false or c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql.explain
new file mode 100644
index 0000000..7310dce
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false or c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.plan
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.sql
new file mode 100644
index 0000000..8841680
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.sql
@@ -0,0 +1 @@
+select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.sql.explain b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.sql.explain
new file mode 100644
index 0000000..92c1384
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6174_filter_push_down_not_is_null.sql.explain
@@ -0,0 +1 @@
+explain plan for select c1, c2, c3 from `parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_id_where_str_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_id_where_str_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_id_where_str_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_id_where_str_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_id_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_id_where_str_is_null.sql
new file mode 100644
index 0000000..3942800
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_id_where_str_is_null.sql
@@ -0,0 +1 @@
+select count(id) from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_star_where_str_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_star_where_str_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_star_where_str_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_star_where_str_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_star_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_star_where_str_is_null.sql
new file mode 100644
index 0000000..bf190bf
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_count_star_where_str_is_null.sql
@@ -0,0 +1 @@
+select count(*) from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_not_str_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_not_str_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_not_str_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_not_str_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_not_str_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_not_str_is_null.sql
new file mode 100644
index 0000000..d208b99
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_not_str_is_null.sql
@@ -0,0 +1 @@
+select id from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where not str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_str_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_str_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_str_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_str_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_str_is_null.sql
new file mode 100644
index 0000000..fdd2f41
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_id_where_str_is_null.sql
@@ -0,0 +1 @@
+select id from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_not_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_not_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_not_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_not_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_not_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_not_null.sql
new file mode 100644
index 0000000..dab4541
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_not_null.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null.sql
new file mode 100644
index 0000000..0b451da
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null_combined_filter.e_tsv b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null_combined_filter.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null_combined_filter.e_tsv
rename to framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null_combined_filter.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null_combined_filter.sql b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null_combined_filter.sql
new file mode 100644
index 0000000..8061aaa
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/DRILL_6603_select_star_where_str_is_null_combined_filter.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null and id < 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/data.json b/framework/resources/Functional/filter/pushdown/boolean_null/data.json
new file mode 100644
index 0000000..c4c970b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/data.json
@@ -0,0 +1,32 @@
+{
+ "testId": "filter_pushdown_boolean_null",
+ "type": "group",
+ "description": "Filter pushdown tests for boolean and null values: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_6174/DRILL_6174_test_data",
+ "dest": "parquet_storage/DRILL_6174/DRILL_6174_test_data"
+ },
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_6603/DRILL_6603_test_data",
+ "dest": "parquet_storage/DRILL_6603/DRILL_6603_test_data"
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/boolean_null/plan.json b/framework/resources/Functional/filter/pushdown/boolean_null/plan.json
new file mode 100644
index 0000000..13bc9a0
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/boolean_null/plan.json
@@ -0,0 +1,26 @@
+{
+ "testId": "filter_pushdown_boolean_null_plan",
+ "type": "group",
+ "description": "Filter pushdown tests for boolean and null values: these tests verify physical plan correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.plan",
+ "verification-type": [
+ "regex-no-order"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_6174/DRILL_6174_test_data",
+ "dest": "parquet_storage/DRILL_6174/DRILL_6174_test_data"
+ }
+ ]
+}
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_date.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_date.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_date.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.sql
similarity index 60%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_date.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.sql
index 77671cf..5a955c1 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_date.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast(date '2017-01-05' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.sql.explain
similarity index 63%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.sql.explain
index 9652947..ba4779e 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_date.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast(date '2017-01-05' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_timestamp.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_timestamp.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql
similarity index 62%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql
index 9a4f9d5..49e6847 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 > cast(date '2017-01-19' as timestamp);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql.explain
similarity index 64%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql.explain
index 26e1d12..10d29cf 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_timestamp.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 > cast(date '2017-01-19' as timestamp);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_varchar.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_varchar.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_varchar_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_varchar_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql
similarity index 61%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql
index a2e2ba3..da1cc0f 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 > cast(date '2017-01-19' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_varchar_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql.explain
similarity index 64%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_varchar_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql.explain
index 8c95a03..7a0112c 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_varchar_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_date_varchar.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 > cast(date '2017-01-19' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_time.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_time.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_time.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.sql
similarity index 60%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_time.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.sql
index f3b232b..de89ef5 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_time.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c6 = cast(time '03:08:47' as time);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.sql.explain
similarity index 63%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.sql.explain
index 766ee0c..dea83f4 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_time.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c6 = cast(time '03:08:47' as time);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_varchar.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_varchar.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_time_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql
similarity index 68%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql
index 0eb25e3..ad0e280 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c6 between cast(time '01:34:23' as varchar) and cast(time '03:08:47' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_varchar_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql.explain
similarity index 70%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_varchar_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql.explain
index 270eee2..72e97ec 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_varchar_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_time_varchar.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c6 between cast(time '01:34:23' as varchar) and cast(time '03:08:47' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_date.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_date.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql
similarity index 63%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql
index 67054a6..7d69eaf 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast(timestamp '2017-01-02 01:02:55' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_date_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql.explain
similarity index 66%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_date_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql.explain
index d0c0c6c..df282ed 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_date_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_date.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast(timestamp '2017-01-02 01:02:55' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql
similarity index 64%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql
index 6253bf0..b133811 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast(timestamp '2017-01-03 01:34:23' as timestamp);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql.explain
similarity index 66%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql.explain
index dfb8dab..2862802 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast(timestamp '2017-01-03 01:34:23' as timestamp);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql
similarity index 64%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql
index 4cfa74c..137ba51 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 = cast(timestamp '2017-01-02 01:02:55' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql.explain
similarity index 66%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql.explain
index 6b5cdb9..aaa99d4 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 = cast(timestamp '2017-01-02 01:02:55' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_date.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_date.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_date_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.plan
diff --git a/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql
new file mode 100644
index 0000000..e737066
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql
@@ -0,0 +1,3 @@
+select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
+where c5 < cast('2017-01-04' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_date_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql.explain
similarity index 62%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_date_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql.explain
index 0294e38..70f6b06 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_date_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c5 < cast('2017-01-04' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_time.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_time.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.plan
diff --git a/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql
new file mode 100644
index 0000000..b6ebbea
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql
@@ -0,0 +1,3 @@
+select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
+where c6 > cast('11:32:15' as time);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql.explain
similarity index 62%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql.explain
index 7854431..2036eca 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_time_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c6 > cast('11:32:15' as time);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql
similarity index 62%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql
index 3bcec08..30578a1 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql
@@ -1,3 +1,3 @@
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 = cast('2017-01-08 04:11:43' as timestamp);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql.explain
similarity index 65%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql.explain
index ec74153..de088a0 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_timestamp.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 = cast('2017-01-08 04:11:43' as timestamp);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql
similarity index 64%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql
index 46e5f3b..219d3f7 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql
@@ -1,3 +1,3 @@
select distinct cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 > cast('2017-01-17 08:30:55' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_varchar_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql.explain
similarity index 66%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_varchar_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql.explain
index 77a8d2e..05d59de 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_varchar_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_ex_varchar_varchar.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select distinct cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 > cast('2017-01-17 08:30:55' as varchar);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_im_date_timestamp.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_im_date_timestamp.e_tsv
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_date_timestamp_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.plan
diff --git a/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql
new file mode 100644
index 0000000..c742c74
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql
@@ -0,0 +1,3 @@
+select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
+where c4 > date '2017-01-19';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_im_date_timestamp_plan.sql b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql.explain
similarity index 61%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_im_date_timestamp_plan.sql
rename to framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql.explain
index a645eec..e556318 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_im_date_timestamp_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/cast/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql.explain
@@ -1,4 +1,4 @@
explain plan for
select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
+from `parquet_storage/DRILL_6174/DRILL_6174_test_data`
where c4 > date '2017-01-19';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/cast/data.json b/framework/resources/Functional/filter/pushdown/cast/data.json
new file mode 100644
index 0000000..aefe8fb
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/cast/data.json
@@ -0,0 +1,27 @@
+{
+ "testId": "filter_pushdown_cast",
+ "type": "group",
+ "description": "Filter pushdown tests with cast: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_6174/DRILL_6174_test_data",
+ "dest": "parquet_storage/DRILL_6174/DRILL_6174_test_data"
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/cast/plan.json b/framework/resources/Functional/filter/pushdown/cast/plan.json
new file mode 100644
index 0000000..5966d5a
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/cast/plan.json
@@ -0,0 +1,26 @@
+{
+ "testId": "filter_pushdown_cast_plan",
+ "type": "group",
+ "description": "Filter pushdown tests with cast: these tests verify physical plan correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.DrillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.plan",
+ "verification-type": [
+ "regex-no-order"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_6174/DRILL_6174_test_data",
+ "dest": "parquet_storage/DRILL_6174/DRILL_6174_test_data"
+ }
+ ]
+}
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql
new file mode 100644
index 0000000..ac3e984
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_array[0] between 200 and 400;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql.explain
new file mode 100644
index 0000000..89bcb90
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_array[0] between 200 and 400;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql
new file mode 100644
index 0000000..aba1298
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_array[3] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql.explain
new file mode 100644
index 0000000..9bc66dc
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_array[3] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql
new file mode 100644
index 0000000..5be4d74
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_complex_field.nested_array[2] >= 1489860699000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql.explain
new file mode 100644
index 0000000..8af1335
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql.explain
@@ -0,0 +1,3 @@
+explain plan for
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[2].nested_complex_field.nested_array[2] >= 1489860699000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql
new file mode 100644
index 0000000..0a31864
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_complex_field.nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql.explain
similarity index 60%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql.explain
index 713325f..801f51f 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values.sql.explain
@@ -1 +1 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_complex_field.nested_array[2] is null;
\ No newline at end of file
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_complex_field.nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql
new file mode 100644
index 0000000..2942878
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_complex_field.nested_field > 200;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql.explain
new file mode 100644
index 0000000..775d99e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_complex_field.nested_field > 200;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql
new file mode 100644
index 0000000..aa38bd2
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_complex_field.nested_field is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql.explain
new file mode 100644
index 0000000..9805522
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql.explain
@@ -0,0 +1,2 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[0].nested_complex_field.nested_field is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql
new file mode 100644
index 0000000..8ab5429
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_field is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql.explain
new file mode 100644
index 0000000..155730c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_field is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql
new file mode 100644
index 0000000..6409f29
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql.explain
new file mode 100644
index 0000000..849de09
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql
new file mode 100644
index 0000000..1fa8434
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql
@@ -0,0 +1,2 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_array[0] between 1330 and 1340;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql.explain
new file mode 100644
index 0000000..818696e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql.explain
@@ -0,0 +1,3 @@
+explain plan for
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_array[0] between 1330 and 1340;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql
new file mode 100644
index 0000000..e73ddb4
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql.explain
new file mode 100644
index 0000000..3046b23
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql.explain
@@ -0,0 +1,3 @@
+explain plan for
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql
new file mode 100644
index 0000000..c20de22
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_field is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql.explain
new file mode 100644
index 0000000..660339b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql.explain
@@ -0,0 +1,3 @@
+explain plan for
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_field is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql
new file mode 100644
index 0000000..fa85e77
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql.explain
new file mode 100644
index 0000000..ed10e50
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql.explain
@@ -0,0 +1,3 @@
+explain plan for
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.sql
new file mode 100644
index 0000000..8b8b09c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_array[3] is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.sql.explain
new file mode 100644
index 0000000..effbad5
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_array[3] is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.sql
new file mode 100644
index 0000000..202d718
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where not t.complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.sql.explain
new file mode 100644
index 0000000..eded8cf
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_array_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where not t.complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql
new file mode 100644
index 0000000..b9b4e0b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql.explain
new file mode 100644
index 0000000..1971104
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql
new file mode 100644
index 0000000..1de923a
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql.explain
new file mode 100644
index 0000000..d6284d8
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql
new file mode 100644
index 0000000..b9a64c4
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field > 1483223487000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql.explain
new file mode 100644
index 0000000..6cfc579
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field > 1483223487000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql
new file mode 100644
index 0000000..ef25cdf
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql.explain
new file mode 100644
index 0000000..15bb3c4
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.sql
new file mode 100644
index 0000000..e5c7779
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field = 111;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.sql.explain
new file mode 100644
index 0000000..c7313e1
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field = 111;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.sql
new file mode 100644
index 0000000..7eb160d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.sql.explain
new file mode 100644
index 0000000..46b6c16
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_field_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql
new file mode 100644
index 0000000..ef9239c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[2].nested_array[2] > 1136;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql.explain
new file mode 100644
index 0000000..ceb12ec
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[2].nested_array[2] > 1136;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql
new file mode 100644
index 0000000..a0dbc8d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[1].nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql.explain
similarity index 60%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql.explain
index 392b483..3484729 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values.sql.explain
@@ -1 +1 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[1].nested_array[3] is null;
\ No newline at end of file
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[1].nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql
new file mode 100644
index 0000000..c2ea8ac
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[0].nested_field > 1484311774000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql.explain
new file mode 100644
index 0000000..1e30326
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql.explain
@@ -0,0 +1,2 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where t.complex_field.nested_list_of_complex_fields[0].nested_field > 1484311774000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql
new file mode 100644
index 0000000..8882cf1
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where not t.complex_field.nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql.explain
new file mode 100644
index 0000000..1fbbb65
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql.explain
@@ -0,0 +1,2 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t
+where not t.complex_field.nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.sql
new file mode 100644
index 0000000..fba7b55
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] >= 20;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.sql.explain
new file mode 100644
index 0000000..1e0c402
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] >= 20;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array_null_values.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array_null_values.e_tsv
rename to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.plan
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.sql b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.sql
new file mode 100644
index 0000000..a7e9b15
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.sql.explain b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.sql.explain
new file mode 100644
index 0000000..23775e3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/DRILL_6259_filter_push_down_top_level_array_null_values.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/complex_fields/data.json b/framework/resources/Functional/filter/pushdown/complex_fields/data.json
new file mode 100644
index 0000000..a61c493
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/data.json
@@ -0,0 +1,27 @@
+{
+ "testId": "filter_pushdown_complex_fields",
+ "type": "group",
+ "description": "Filter pushdown tests for complex fields: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_6259/DRILL_6259_test_data",
+ "dest": "parquet_storage/DRILL_6259/DRILL_6259_test_data"
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/plan_no_order.json b/framework/resources/Functional/filter/pushdown/complex_fields/plan.json
similarity index 79%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/plan_no_order.json
rename to framework/resources/Functional/filter/pushdown/complex_fields/plan.json
index d721cac..37bc171 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/plan_no_order.json
+++ b/framework/resources/Functional/filter/pushdown/complex_fields/plan.json
@@ -1,16 +1,16 @@
{
- "testId": "filter_pushdown_plan_no_order",
+ "testId": "filter_pushdown_complex_fields_plan",
"type": "group",
- "description": "Filter pushdown tests: these tests verify query plans for the queries that are in ../data directory",
+ "description": "Filter pushdown tests : these tests verify physical plan correctness",
"categories": [
"functional"
],
"matrices": [
{
- "query-file": ".*.sql",
- "schema": "dfs",
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.drillTestDir",
"output-format": "tsv",
- "expected-file": ".*.e_tsv",
+ "expected-file": ".*.plan",
"verification-type": [
"regex-no-order"
]
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql
deleted file mode 100644
index a2a40ee..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_date.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
-where c5 < cast('2017-01-04' as date);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql
deleted file mode 100644
index 4e387e9..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_ex_varchar_time.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
-where c6 > cast('11:32:15' as time);
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql
deleted file mode 100644
index c257855..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_cast_im_date_timestamp.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-select cast(c4 as varchar), cast(c5 as varchar), cast(c6 as varchar)
-from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data`
-where c4 > date '2017-01-19';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_eq_false.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_eq_false.sql
deleted file mode 100644
index 1b54793..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_eq_false.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql
deleted file mode 100644
index 4021144..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_false_and_is_not_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false and c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_null.sql
deleted file mode 100644
index ad189d4..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_true.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_true.sql
deleted file mode 100644
index e0d4119..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_not_true.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_null.sql
deleted file mode 100644
index f59570a..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_true.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_true.sql
deleted file mode 100644
index 2c139c8..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_is_true.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_eq_false.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_eq_false.sql
deleted file mode 100644
index adc546a..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_eq_false.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false.sql
deleted file mode 100644
index 6f17037..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql
deleted file mode 100644
index bb47343..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_false_or_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false or c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_null.sql
deleted file mode 100644
index 6cff21e..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6174_filter_push_down_not_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql
deleted file mode 100644
index 536f8d7..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_array[0] between 200 and 400;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql
deleted file mode 100644
index 8a1cc81..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_array[3] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql
deleted file mode 100644
index 8571d7d..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_complex_field.nested_array[2] >= 1489860699000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql
deleted file mode 100644
index 8c73696..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_complex_field.nested_field > 200;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql
deleted file mode 100644
index dfa1362..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_complex_field.nested_field is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql
deleted file mode 100644
index 434c710..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_field is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql
deleted file mode 100644
index 4a56a34..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql
deleted file mode 100644
index 215fcd4..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_array[0] between 1330 and 1340;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql
deleted file mode 100644
index 248eeaf..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql
deleted file mode 100644
index a27bdea..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_field is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql
deleted file mode 100644
index a85bba6..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array.sql
deleted file mode 100644
index 2080679..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_array[3] is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array_null_values.sql
deleted file mode 100644
index dffede9..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_array_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where not t.complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql
deleted file mode 100644
index 53054c2..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql
deleted file mode 100644
index 3c384a2..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql
deleted file mode 100644
index dfa6c60..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field > 1483223487000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql
deleted file mode 100644
index 646c895..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field.sql
deleted file mode 100644
index d43293d..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field = 111;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field_null_values.sql
deleted file mode 100644
index 0ceaeb6..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_field_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql
deleted file mode 100644
index 502c60d..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[2].nested_array[2] > 1136;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql
deleted file mode 100644
index 3df80ec..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[0].nested_field > 1484311774000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql
deleted file mode 100644
index 2eb81c1..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where not t.complex_field.nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array.sql
deleted file mode 100644
index d39cad4..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] >= 20;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array_null_values.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array_null_values.sql
deleted file mode 100644
index 0db19eb..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6259_filter_push_down_top_level_array_null_values.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_id_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_id_where_str_is_null.sql
deleted file mode 100644
index 64e37a9..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_id_where_str_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select count(id) from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_star_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_star_where_str_is_null.sql
deleted file mode 100644
index 94c2d23..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_count_star_where_str_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select count(*) from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_not_str_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_not_str_is_null.sql
deleted file mode 100644
index 8d2ec91..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_not_str_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select id from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where not str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_str_is_null.sql
deleted file mode 100644
index a4c878c..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_id_where_str_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select id from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_not_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_not_null.sql
deleted file mode 100644
index e923de1..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_not_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null.sql
deleted file mode 100644
index 3191406..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null_combined_filter.sql b/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null_combined_filter.sql
deleted file mode 100644
index 0d93702..0000000
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_6603_select_star_where_str_is_null_combined_filter.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6603/DRILL_6603_test_data` where str is null and id < 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/data.json b/framework/resources/Functional/filter/pushdown/data/data.json
deleted file mode 100644
index 363a5f8..0000000
--- a/framework/resources/Functional/filter/pushdown/data/data.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "testId": "filter_pushdown_data",
- "type": "group",
- "description": "Filter pushdown tests: these tests verify query correctness",
- "categories": [
- "functional"
- ],
- "matrices": [
- {
- "query-file": ".*.sql",
- "schema": "dfs.subqueries",
- "output-format": "tsv",
- "expected-file": ".*.e_tsv",
- "verification-type": [
- "in-memory"
- ]
- }
- ],
- "datasources": [
- {
- "mode": "cp",
- "src": "Datasources/subqueries",
- "dest": "subqueries"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_data_source.csv",
- "dest": "parquet_storage/DRILL_6118/DRILL_6118_data_source.csv"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_complex.parquet",
- "dest": "parquet_storage/DRILL_6118/DRILL_6118_complex.parquet"
- },
- {
- "mode": "gen",
- "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_execute_ddl.sh"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL_6174/DRILL_6174_test_data",
- "dest": "parquet_storage/DRILL_6174/DRILL_6174_test_data"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL_6259/DRILL_6259_test_data",
- "dest": "parquet_storage/DRILL_6259/DRILL_6259_test_data"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL_3855/DRILL_3855_test_data",
- "dest": "parquet_storage/DRILL_3855/DRILL_3855_test_data"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL_6603/DRILL_6603_test_data",
- "dest": "parquet_storage/DRILL_6603/DRILL_6603_test_data"
- }
- ]
-}
-
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_subqueries.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_subqueries.sql
deleted file mode 100644
index 7629e6d..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_subqueries.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`) where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_view.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_view.sql
deleted file mode 100644
index 01f4391..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_view.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders_view` where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_filter.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_filter.sql
deleted file mode 100644
index 602880f..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_filter.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c3 from (select * from dfs.drillTestDir.`parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where t.c1.values_list[3]=15;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_project.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_project.sql
deleted file mode 100644
index da3a93b..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_project.sql
+++ /dev/null
@@ -1 +0,0 @@
-select t.c1.values_list[3] from (select * from dfs.drillTestDir.`parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where c2='value_4_6';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_filter.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_filter.sql
deleted file mode 100644
index 925eb40..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_filter.sql
+++ /dev/null
@@ -1 +0,0 @@
-select distinct c1 from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`) where c1*2<5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_project.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_project.sql
deleted file mode 100644
index 5d98f5f..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_project.sql
+++ /dev/null
@@ -1 +0,0 @@
-select distinct c1+2 from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`) where c1>3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_subqueries.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_subqueries.sql
deleted file mode 100644
index bd06868..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_subqueries.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c3 from (select * from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning`) where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_view.sql b/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_view.sql
deleted file mode 100644
index 3b82d29..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_view.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c3 from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning_view` where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries.sql b/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries.sql
deleted file mode 100644
index 0165a62..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries.sql
+++ /dev/null
@@ -1 +0,0 @@
-select * from (select * from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`)) where c1 < 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_cte_view.sql b/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_cte_view.sql
deleted file mode 100644
index 3f3efdd..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_cte_view.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-with t as (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders_view`)
-select * from (select * from (select * from t)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_more_layers.sql b/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_more_layers.sql
deleted file mode 100644
index 1821919..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_more_layers.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-select * from
- (select * from
- (select * from
- (select * from
- (select * from
- (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`)))))
-where c1 between 3 and 4;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_project_push_into_scan_nested_subqueries.sql b/framework/resources/Functional/filter/pushdown/data/drill_6199_project_push_into_scan_nested_subqueries.sql
deleted file mode 100644
index a9a6511..0000000
--- a/framework/resources/Functional/filter/pushdown/data/drill_6199_project_push_into_scan_nested_subqueries.sql
+++ /dev/null
@@ -1 +0,0 @@
-select c3 from (select * from (select * from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning`)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn0.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn0.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn0.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn0.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn0.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn0.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn0.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn0.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn1.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn1.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn1.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn1.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn1.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn1.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn1.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn1.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn11.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn11.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn11.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn11.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn11.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn11.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn11.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn11.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn13.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn13.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn13.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn13.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn13.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn13.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn13.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn13.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn19.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn19.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn19.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn19.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn19.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn19.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn19.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn19.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn2.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn2.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn2.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn2.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn2.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn2.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn2.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn2.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn22.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn22.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn22.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn22.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn22.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn22.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn22.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn22.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn24.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn24.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn24.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn24.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn24.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn24.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn24.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn24.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn3.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn3.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn3.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn3.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn3.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn3.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn3.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn3.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn5.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn5.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn5.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn5.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn5.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn5.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn5.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn5.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn7.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn7.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn7.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn7.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn7.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn7.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn7.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn7.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn8.plan b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn8.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn8.plan
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn8.plan
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn8.sql.explain b/framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn8.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/Fltr_Pshdwn8.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/Fltr_Pshdwn8.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/general/data.json b/framework/resources/Functional/filter/pushdown/general/data.json
new file mode 100644
index 0000000..68abf9a
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/general/data.json
@@ -0,0 +1,27 @@
+{
+ "testId": "filter_pushdown_general",
+ "type": "group",
+ "description": "Filter pushdown tests: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.subqueries",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/subqueries",
+ "dest": "subqueries"
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/general/plan.json b/framework/resources/Functional/filter/pushdown/general/plan.json
new file mode 100755
index 0000000..d22c089
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/general/plan.json
@@ -0,0 +1,37 @@
+{
+ "testId": "filter_pushdown_general_plan",
+ "type": "group",
+ "description": "Filter pushdown tests: these tests verify query plans for the queries that are in ../data directory",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.subqueries",
+ "output-format": "tsv",
+ "expected-file": ".*.plan",
+ "verification-type": [
+ "regex"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/subqueries",
+ "dest": "subqueries"
+ },
+ {
+ "mode": "cp",
+ "src": "Datasources/ctas/Transitive_closure.csv",
+ "dest": "/drill/testdata/transitive_closure/filterPushdown/Transitive_closure.csv"
+ },
+ {
+ "mode": "gen",
+ "src": "Datasources/ctas/Transitive_closure_gen.sh Transitive_closure_pushDown.ddl drillTestDir /drill/testdata/transitive_closure/filterPushdown/",
+ "dest": ""
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/data/q1.e_tsv b/framework/resources/Functional/filter/pushdown/general/q1.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q1.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q1.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q1.plan b/framework/resources/Functional/filter/pushdown/general/q1.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q1.plan
rename to framework/resources/Functional/filter/pushdown/general/q1.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q1.sql b/framework/resources/Functional/filter/pushdown/general/q1.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q1.sql
rename to framework/resources/Functional/filter/pushdown/general/q1.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q1.sql.explain b/framework/resources/Functional/filter/pushdown/general/q1.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q1.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q1.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q10.e_tsv b/framework/resources/Functional/filter/pushdown/general/q10.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q10.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q10.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q10.plan b/framework/resources/Functional/filter/pushdown/general/q10.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q10.plan
rename to framework/resources/Functional/filter/pushdown/general/q10.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q10.sql b/framework/resources/Functional/filter/pushdown/general/q10.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q10.sql
rename to framework/resources/Functional/filter/pushdown/general/q10.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q10.sql.explain b/framework/resources/Functional/filter/pushdown/general/q10.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q10.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q10.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q11.e_tsv b/framework/resources/Functional/filter/pushdown/general/q11.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q11.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q11.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q11.plan b/framework/resources/Functional/filter/pushdown/general/q11.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q11.plan
rename to framework/resources/Functional/filter/pushdown/general/q11.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q11.sql b/framework/resources/Functional/filter/pushdown/general/q11.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q11.sql
rename to framework/resources/Functional/filter/pushdown/general/q11.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q11.sql.explain b/framework/resources/Functional/filter/pushdown/general/q11.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q11.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q11.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q12.e_tsv b/framework/resources/Functional/filter/pushdown/general/q12.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q12.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q12.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/data/q12.sql b/framework/resources/Functional/filter/pushdown/general/q12.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q12.sql
rename to framework/resources/Functional/filter/pushdown/general/q12.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q12.sql.drill-3942.fail b/framework/resources/Functional/filter/pushdown/general/q12.sql.drill-3942.fail
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q12.sql.drill-3942.fail
rename to framework/resources/Functional/filter/pushdown/general/q12.sql.drill-3942.fail
diff --git a/framework/resources/Functional/filter/pushdown/data/q13.e_tsv b/framework/resources/Functional/filter/pushdown/general/q13.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q13.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q13.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q13.plan b/framework/resources/Functional/filter/pushdown/general/q13.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q13.plan
rename to framework/resources/Functional/filter/pushdown/general/q13.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q13.sql b/framework/resources/Functional/filter/pushdown/general/q13.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q13.sql
rename to framework/resources/Functional/filter/pushdown/general/q13.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q13.sql.explain b/framework/resources/Functional/filter/pushdown/general/q13.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q13.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q13.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q14.e_tsv b/framework/resources/Functional/filter/pushdown/general/q14.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q14.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q14.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q14.plan b/framework/resources/Functional/filter/pushdown/general/q14.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q14.plan
rename to framework/resources/Functional/filter/pushdown/general/q14.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q14.sql b/framework/resources/Functional/filter/pushdown/general/q14.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q14.sql
rename to framework/resources/Functional/filter/pushdown/general/q14.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q14.sql.explain b/framework/resources/Functional/filter/pushdown/general/q14.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q14.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q14.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q15.e_tsv b/framework/resources/Functional/filter/pushdown/general/q15.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q15.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q15.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q15.plan b/framework/resources/Functional/filter/pushdown/general/q15.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q15.plan
rename to framework/resources/Functional/filter/pushdown/general/q15.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q15.sql b/framework/resources/Functional/filter/pushdown/general/q15.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q15.sql
rename to framework/resources/Functional/filter/pushdown/general/q15.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q15.sql.explain b/framework/resources/Functional/filter/pushdown/general/q15.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q15.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q15.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q16.e_tsv b/framework/resources/Functional/filter/pushdown/general/q16.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q16.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q16.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q16.plan b/framework/resources/Functional/filter/pushdown/general/q16.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q16.plan
rename to framework/resources/Functional/filter/pushdown/general/q16.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q16.sql b/framework/resources/Functional/filter/pushdown/general/q16.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q16.sql
rename to framework/resources/Functional/filter/pushdown/general/q16.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q16.sql.explain b/framework/resources/Functional/filter/pushdown/general/q16.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q16.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q16.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q17.e_tsv b/framework/resources/Functional/filter/pushdown/general/q17.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q17.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q17.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q17.plan b/framework/resources/Functional/filter/pushdown/general/q17.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q17.plan
rename to framework/resources/Functional/filter/pushdown/general/q17.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q17.sql b/framework/resources/Functional/filter/pushdown/general/q17.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q17.sql
rename to framework/resources/Functional/filter/pushdown/general/q17.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q17.sql.explain b/framework/resources/Functional/filter/pushdown/general/q17.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q17.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q17.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q18.e_tsv b/framework/resources/Functional/filter/pushdown/general/q18.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q18.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q18.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q18.plan b/framework/resources/Functional/filter/pushdown/general/q18.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q18.plan
rename to framework/resources/Functional/filter/pushdown/general/q18.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q18.sql b/framework/resources/Functional/filter/pushdown/general/q18.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q18.sql
rename to framework/resources/Functional/filter/pushdown/general/q18.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q18.sql.explain b/framework/resources/Functional/filter/pushdown/general/q18.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q18.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q18.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q19.e_tsv b/framework/resources/Functional/filter/pushdown/general/q19.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q19.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q19.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q19.plan b/framework/resources/Functional/filter/pushdown/general/q19.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q19.plan
rename to framework/resources/Functional/filter/pushdown/general/q19.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q19.sql b/framework/resources/Functional/filter/pushdown/general/q19.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q19.sql
rename to framework/resources/Functional/filter/pushdown/general/q19.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q19.sql.explain b/framework/resources/Functional/filter/pushdown/general/q19.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q19.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q19.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q2.e_tsv b/framework/resources/Functional/filter/pushdown/general/q2.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q2.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q2.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q2.plan b/framework/resources/Functional/filter/pushdown/general/q2.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q2.plan
rename to framework/resources/Functional/filter/pushdown/general/q2.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q2.sql b/framework/resources/Functional/filter/pushdown/general/q2.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q2.sql
rename to framework/resources/Functional/filter/pushdown/general/q2.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q2.sql.explain b/framework/resources/Functional/filter/pushdown/general/q2.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q2.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q2.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q20.e_tsv b/framework/resources/Functional/filter/pushdown/general/q20.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q20.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q20.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q20.plan b/framework/resources/Functional/filter/pushdown/general/q20.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q20.plan
rename to framework/resources/Functional/filter/pushdown/general/q20.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q20.sql b/framework/resources/Functional/filter/pushdown/general/q20.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q20.sql
rename to framework/resources/Functional/filter/pushdown/general/q20.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q20.sql.explain b/framework/resources/Functional/filter/pushdown/general/q20.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q20.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q20.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q21.e_tsv b/framework/resources/Functional/filter/pushdown/general/q21.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q21.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q21.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q21.plan b/framework/resources/Functional/filter/pushdown/general/q21.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q21.plan
rename to framework/resources/Functional/filter/pushdown/general/q21.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q21.sql b/framework/resources/Functional/filter/pushdown/general/q21.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q21.sql
rename to framework/resources/Functional/filter/pushdown/general/q21.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q21.sql.explain b/framework/resources/Functional/filter/pushdown/general/q21.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q21.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q21.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q22.e_tsv b/framework/resources/Functional/filter/pushdown/general/q22.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q22.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q22.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q22.plan b/framework/resources/Functional/filter/pushdown/general/q22.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q22.plan
rename to framework/resources/Functional/filter/pushdown/general/q22.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q22.sql b/framework/resources/Functional/filter/pushdown/general/q22.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q22.sql
rename to framework/resources/Functional/filter/pushdown/general/q22.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q22.sql.explain b/framework/resources/Functional/filter/pushdown/general/q22.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q22.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q22.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q23.e_tsv b/framework/resources/Functional/filter/pushdown/general/q23.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q23.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q23.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q23.plan b/framework/resources/Functional/filter/pushdown/general/q23.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q23.plan
rename to framework/resources/Functional/filter/pushdown/general/q23.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q23.sql b/framework/resources/Functional/filter/pushdown/general/q23.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q23.sql
rename to framework/resources/Functional/filter/pushdown/general/q23.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q23.sql.explain b/framework/resources/Functional/filter/pushdown/general/q23.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q23.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q23.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q24.e_tsv b/framework/resources/Functional/filter/pushdown/general/q24.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q24.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q24.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q24.plan b/framework/resources/Functional/filter/pushdown/general/q24.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q24.plan
rename to framework/resources/Functional/filter/pushdown/general/q24.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q24.sql b/framework/resources/Functional/filter/pushdown/general/q24.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q24.sql
rename to framework/resources/Functional/filter/pushdown/general/q24.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q24.sql.explain b/framework/resources/Functional/filter/pushdown/general/q24.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q24.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q24.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q3.e_tsv b/framework/resources/Functional/filter/pushdown/general/q3.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q3.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q3.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q3.plan b/framework/resources/Functional/filter/pushdown/general/q3.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q3.plan
rename to framework/resources/Functional/filter/pushdown/general/q3.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q3.sql b/framework/resources/Functional/filter/pushdown/general/q3.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q3.sql
rename to framework/resources/Functional/filter/pushdown/general/q3.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q3.sql.explain b/framework/resources/Functional/filter/pushdown/general/q3.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q3.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q3.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q4.e_tsv b/framework/resources/Functional/filter/pushdown/general/q4.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q4.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q4.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q4.plan b/framework/resources/Functional/filter/pushdown/general/q4.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q4.plan
rename to framework/resources/Functional/filter/pushdown/general/q4.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q4.sql b/framework/resources/Functional/filter/pushdown/general/q4.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q4.sql
rename to framework/resources/Functional/filter/pushdown/general/q4.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q4.sql.explain b/framework/resources/Functional/filter/pushdown/general/q4.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q4.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q4.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q5.e_tsv b/framework/resources/Functional/filter/pushdown/general/q5.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q5.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q5.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q5.plan b/framework/resources/Functional/filter/pushdown/general/q5.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q5.plan
rename to framework/resources/Functional/filter/pushdown/general/q5.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q5.sql b/framework/resources/Functional/filter/pushdown/general/q5.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q5.sql
rename to framework/resources/Functional/filter/pushdown/general/q5.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q5.sql.explain b/framework/resources/Functional/filter/pushdown/general/q5.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q5.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q5.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q6.e_tsv b/framework/resources/Functional/filter/pushdown/general/q6.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q6.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q6.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q6.plan b/framework/resources/Functional/filter/pushdown/general/q6.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q6.plan
rename to framework/resources/Functional/filter/pushdown/general/q6.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q6.sql b/framework/resources/Functional/filter/pushdown/general/q6.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q6.sql
rename to framework/resources/Functional/filter/pushdown/general/q6.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q6.sql.explain b/framework/resources/Functional/filter/pushdown/general/q6.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q6.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q6.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q7.e_tsv b/framework/resources/Functional/filter/pushdown/general/q7.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q7.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q7.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q7.plan b/framework/resources/Functional/filter/pushdown/general/q7.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q7.plan
rename to framework/resources/Functional/filter/pushdown/general/q7.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q7.sql b/framework/resources/Functional/filter/pushdown/general/q7.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q7.sql
rename to framework/resources/Functional/filter/pushdown/general/q7.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q7.sql.explain b/framework/resources/Functional/filter/pushdown/general/q7.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q7.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q7.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q8.e_tsv b/framework/resources/Functional/filter/pushdown/general/q8.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q8.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q8.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q8.plan b/framework/resources/Functional/filter/pushdown/general/q8.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q8.plan
rename to framework/resources/Functional/filter/pushdown/general/q8.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q8.sql b/framework/resources/Functional/filter/pushdown/general/q8.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q8.sql
rename to framework/resources/Functional/filter/pushdown/general/q8.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q8.sql.explain b/framework/resources/Functional/filter/pushdown/general/q8.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q8.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q8.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/data/q9.e_tsv b/framework/resources/Functional/filter/pushdown/general/q9.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q9.e_tsv
rename to framework/resources/Functional/filter/pushdown/general/q9.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q9.plan b/framework/resources/Functional/filter/pushdown/general/q9.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q9.plan
rename to framework/resources/Functional/filter/pushdown/general/q9.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/q9.sql b/framework/resources/Functional/filter/pushdown/general/q9.sql
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/q9.sql
rename to framework/resources/Functional/filter/pushdown/general/q9.sql
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/q9.sql.explain b/framework/resources/Functional/filter/pushdown/general/q9.sql.explain
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/q9.sql.explain
rename to framework/resources/Functional/filter/pushdown/general/q9.sql.explain
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/data.json b/framework/resources/Functional/filter/pushdown/item_star_operator/data.json
new file mode 100644
index 0000000..2d16cb1
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/data.json
@@ -0,0 +1,31 @@
+{
+ "testId": "filter_pushdown_item_star_operator",
+ "type": "group",
+ "description": "Filter pushdown tests with item star operator: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_data_source.csv",
+ "dest": "parquet_storage/DRILL_6118/DRILL_6118_data_source.csv"
+ },
+ {
+ "mode": "gen",
+ "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_execute_ddl.sh"
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_cte.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_cte.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_cte_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_cte_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_cte.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.sql
similarity index 66%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_cte.sql
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.sql
index 70a5847..e099a98 100644
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_cte.sql
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.sql
@@ -1,2 +1,2 @@
-with DRILL_6118_parquet_partitioned_by_folders_cte as (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`)
+with DRILL_6118_parquet_partitioned_by_folders_cte as (select * from `DRILL_6118_parquet_partitioned_by_folders`)
select * from DRILL_6118_parquet_partitioned_by_folders_cte where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_cte_plan.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.sql.explain
similarity index 61%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_cte_plan.sql
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.sql.explain
index f896568..df59d44 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_cte_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_cte.sql.explain
@@ -1,2 +1,2 @@
-explain plan for with DRILL_6118_parquet_partitioned_by_folders_cte as (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`)
+explain plan for with DRILL_6118_parquet_partitioned_by_folders_cte as (select * from `DRILL_6118_parquet_partitioned_by_folders`)
select * from DRILL_6118_parquet_partitioned_by_folders_cte where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_subqueries.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_subqueries.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.sql
new file mode 100644
index 0000000..1e899db
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.sql
@@ -0,0 +1 @@
+select * from (select * from `DRILL_6118_parquet_partitioned_by_folders`) where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.sql.explain
new file mode 100644
index 0000000..6d132dd
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_subqueries.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from (select * from `DRILL_6118_parquet_partitioned_by_folders`) where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_view.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_filter_push_down_with_view.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.sql
new file mode 100644
index 0000000..2d2d5c7
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.sql
@@ -0,0 +1 @@
+select * from `DRILL_6118_parquet_partitioned_by_folders_view` where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.sql.explain
new file mode 100644
index 0000000..89d521b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_filter_push_down_with_view.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `DRILL_6118_parquet_partitioned_by_folders_view` where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_filter.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_filter.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_filter_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_filter_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.sql
new file mode 100644
index 0000000..436893c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.sql
@@ -0,0 +1 @@
+select c3 from (select * from `parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where t.c1.values_list[3]=15;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.sql.explain
new file mode 100644
index 0000000..11f3b5e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_filter.sql.explain
@@ -0,0 +1 @@
+explain plan for select c3 from (select * from `parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where t.c1.values_list[3]=15;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_project.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_complex_project.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_project_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_project_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.sql
new file mode 100644
index 0000000..569bf18
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.sql
@@ -0,0 +1 @@
+select t.c1.values_list[3] from (select * from `parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where c2='value_4_6';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.sql.explain
new file mode 100644
index 0000000..3a49a85
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_complex_project.sql.explain
@@ -0,0 +1 @@
+explain plan for select t.c1.values_list[3] from (select * from `parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where c2='value_4_6';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_filter.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_filter.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.sql
new file mode 100644
index 0000000..1054acb
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.sql
@@ -0,0 +1 @@
+select distinct c1 from (select * from `DRILL_6118_parquet_partitioned_by_folders`) where c1*2<5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.sql.explain
new file mode 100644
index 0000000..5276a11
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_filter.sql.explain
@@ -0,0 +1 @@
+explain plan for select distinct c1 from (select * from `DRILL_6118_parquet_partitioned_by_folders`) where c1*2<5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_project.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_expression_in_project.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.sql
new file mode 100644
index 0000000..3245b6f
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.sql
@@ -0,0 +1 @@
+select distinct c1+2 from (select * from `DRILL_6118_parquet_partitioned_by_folders`) where c1>3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.sql.explain
new file mode 100644
index 0000000..7179b22
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_expression_in_project.sql.explain
@@ -0,0 +1 @@
+explain plan for select distinct c1+2 from (select * from `DRILL_6118_parquet_partitioned_by_folders`) where c1>3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_cte.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_cte.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_cte.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.sql
similarity index 68%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_cte.sql
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.sql
index 9774973..c958a2d 100644
--- a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_cte.sql
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.sql
@@ -1,2 +1,2 @@
-with DRILL_6118_parquet_without_partitioning_cte as (select * from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning`)
+with DRILL_6118_parquet_without_partitioning_cte as (select * from `DRILL_6118_parquet_without_partitioning`)
select c3 from DRILL_6118_parquet_without_partitioning_cte where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.sql.explain
similarity index 62%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.sql
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.sql.explain
index 636ad92..9a2a872 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.sql
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_cte.sql.explain
@@ -1,2 +1,2 @@
-explain plan for with DRILL_6118_parquet_without_partitioning_cte as (select * from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning`)
+explain plan for with DRILL_6118_parquet_without_partitioning_cte as (select * from `DRILL_6118_parquet_without_partitioning`)
select c3 from DRILL_6118_parquet_without_partitioning_cte where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_subqueries.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_subqueries.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.sql
new file mode 100644
index 0000000..1d2b0a4
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.sql
@@ -0,0 +1 @@
+select c3 from (select * from `DRILL_6118_parquet_without_partitioning`) where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.sql.explain
new file mode 100644
index 0000000..676b42e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_subqueries.sql.explain
@@ -0,0 +1 @@
+explain plan for select c3 from (select * from `DRILL_6118_parquet_without_partitioning`) where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_view.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6118_project_push_into_scan_with_view.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_cte_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.sql
new file mode 100644
index 0000000..09b723b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.sql
@@ -0,0 +1 @@
+select c3 from `DRILL_6118_parquet_without_partitioning_view` where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.sql.explain
new file mode 100644
index 0000000..7794f35
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6118_project_push_into_scan_with_view.sql.explain
@@ -0,0 +1 @@
+explain plan for select c3 from `DRILL_6118_parquet_without_partitioning_view` where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.sql
new file mode 100644
index 0000000..4552037
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.sql
@@ -0,0 +1 @@
+select * from (select * from (select * from `DRILL_6118_parquet_partitioned_by_folders`)) where c1 < 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.sql.explain
new file mode 100644
index 0000000..836ca7b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from (select * from (select * from `DRILL_6118_parquet_partitioned_by_folders`)) where c1 < 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_cte_view.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_cte_view.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_cte_view_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_cte_view_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.sql
new file mode 100644
index 0000000..ba0b7c1
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.sql
@@ -0,0 +1,2 @@
+with t as (select * from `DRILL_6118_parquet_partitioned_by_folders_view`)
+select * from (select * from (select * from t)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.sql.explain
new file mode 100644
index 0000000..676b9c2
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_cte_view.sql.explain
@@ -0,0 +1,3 @@
+explain plan for
+with t as (select * from `DRILL_6118_parquet_partitioned_by_folders_view`)
+select * from (select * from (select * from t)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_more_layers.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6199_filter_push_down_nested_subqueries_more_layers.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.plan
similarity index 100%
copy from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.e_tsv
copy to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.sql
new file mode 100644
index 0000000..96a25ab
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.sql
@@ -0,0 +1,7 @@
+select * from
+ (select * from
+ (select * from
+ (select * from
+ (select * from
+ (select * from `DRILL_6118_parquet_partitioned_by_folders`)))))
+where c1 between 3 and 4;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.sql.explain
new file mode 100644
index 0000000..0d7146e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_filter_push_down_nested_subqueries_more_layers.sql.explain
@@ -0,0 +1,8 @@
+explain plan for
+select * from
+(select * from
+ (select * from
+ (select * from
+ (select * from
+ (select * from `DRILL_6118_parquet_partitioned_by_folders`)))))
+where c1 between 3 and 4;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/drill_6199_project_push_into_scan_nested_subqueries.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/drill_6199_project_push_into_scan_nested_subqueries.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_project_push_into_scan_nested_subqueries_plan.e_tsv b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_project_push_into_scan_nested_subqueries_plan.e_tsv
rename to framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.plan
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.sql b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.sql
new file mode 100644
index 0000000..be5716e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.sql
@@ -0,0 +1 @@
+select c3 from (select * from (select * from `DRILL_6118_parquet_without_partitioning`)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.sql.explain b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.sql.explain
new file mode 100644
index 0000000..83aa94e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/drill_6199_project_push_into_scan_nested_subqueries.sql.explain
@@ -0,0 +1 @@
+explain plan for select c3 from (select * from (select * from `DRILL_6118_parquet_without_partitioning`)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/item_star_operator/plan.json b/framework/resources/Functional/filter/pushdown/item_star_operator/plan.json
new file mode 100644
index 0000000..57c2152
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/item_star_operator/plan.json
@@ -0,0 +1,31 @@
+{
+ "testId": "filter_pushdown_item_star_operator_plan",
+ "type": "group",
+ "description": "Filter pushdown tests with item star operator: these tests verify physical plan correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.plan",
+ "verification-type": [
+ "regex-no-order"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_data_source.csv",
+ "dest": "parquet_storage/DRILL_6118/DRILL_6118_data_source.csv"
+ },
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_complex.parquet",
+ "dest": "parquet_storage/DRILL_6118/DRILL_6118_complex.parquet"
+ }
+ ]
+}
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.e_tsv
new file mode 100644
index 0000000..01580d3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.e_tsv
@@ -0,0 +1,5 @@
+101 Partition_two [0,1,2,3,4] false 2016-02-27 null 22:55:55.230 2016-01-04 23:00:50.0 {"id":101,"part_col":"Partition_two","int_col":[0,1,2,3,4],"bool_col":false,"date_col":"2016-02-27","time_col":"22:55:55.230","ts_col":"2016-01-04 23:00:50.000"}
+102 Partition_two [1,2,3,4,5] false 2016-02-28 null 22:55:55 2016-01-05 23:01:49.0 {"id":102,"part_col":"Partition_two","int_col":[1,2,3,4,5],"bool_col":false,"date_col":"2016-02-28","time_col":"22:55:55.000","ts_col":"2016-01-05 23:01:49.000"}
+103 Partition_two [2,3,4,5,6] false 2016-02-29 null 22:55:54.770 2016-01-06 23:02:48.0 {"id":103,"part_col":"Partition_two","int_col":[2,3,4,5,6],"bool_col":false,"date_col":"2016-02-29","time_col":"22:55:54.770","ts_col":"2016-01-06 23:02:48.000"}
+104 Partition_two [3,4,5,6,7] null 2016-03-01 3.159 22:55:54.540 2016-01-07 23:03:47.0 {"id":104,"part_col":"Partition_two","int_col":[3,4,5,6,7],"date_col":"2016-03-01","float_col":3.159,"time_col":"22:55:54.540","ts_col":"2016-01-07 23:03:47.000"}
+105 Partition_two [4,5,6,7,8] false 2016-03-02 4.06 22:55:54.310 null {"id":105,"part_col":"Partition_two","int_col":[4,5,6,7,8],"bool_col":false,"date_col":"2016-03-02","float_col":4.06,"time_col":"22:55:54.310"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.plan
new file mode 100644
index 0000000..9f6b520
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.sql
new file mode 100644
index 0000000..bf7b963
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t where t.nested_group.date_col < date '2017-01-01' order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.sql.explain
new file mode 100644
index 0000000..bce912d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_complex_field.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t where t.nested_group.date_col < date '2017-01-01' order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.e_tsv
new file mode 100644
index 0000000..01580d3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.e_tsv
@@ -0,0 +1,5 @@
+101 Partition_two [0,1,2,3,4] false 2016-02-27 null 22:55:55.230 2016-01-04 23:00:50.0 {"id":101,"part_col":"Partition_two","int_col":[0,1,2,3,4],"bool_col":false,"date_col":"2016-02-27","time_col":"22:55:55.230","ts_col":"2016-01-04 23:00:50.000"}
+102 Partition_two [1,2,3,4,5] false 2016-02-28 null 22:55:55 2016-01-05 23:01:49.0 {"id":102,"part_col":"Partition_two","int_col":[1,2,3,4,5],"bool_col":false,"date_col":"2016-02-28","time_col":"22:55:55.000","ts_col":"2016-01-05 23:01:49.000"}
+103 Partition_two [2,3,4,5,6] false 2016-02-29 null 22:55:54.770 2016-01-06 23:02:48.0 {"id":103,"part_col":"Partition_two","int_col":[2,3,4,5,6],"bool_col":false,"date_col":"2016-02-29","time_col":"22:55:54.770","ts_col":"2016-01-06 23:02:48.000"}
+104 Partition_two [3,4,5,6,7] null 2016-03-01 3.159 22:55:54.540 2016-01-07 23:03:47.0 {"id":104,"part_col":"Partition_two","int_col":[3,4,5,6,7],"date_col":"2016-03-01","float_col":3.159,"time_col":"22:55:54.540","ts_col":"2016-01-07 23:03:47.000"}
+105 Partition_two [4,5,6,7,8] false 2016-03-02 4.06 22:55:54.310 null {"id":105,"part_col":"Partition_two","int_col":[4,5,6,7,8],"bool_col":false,"date_col":"2016-03-02","float_col":4.06,"time_col":"22:55:54.310"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.plan
new file mode 100644
index 0000000..9f6b520
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.sql
new file mode 100644
index 0000000..00a9af1
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where date_col < '2017-01-01' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.sql.explain
new file mode 100644
index 0000000..917c1bb
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_date_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where date_col < '2017-01-01' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.e_tsv
new file mode 100644
index 0000000..01580d3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.e_tsv
@@ -0,0 +1,5 @@
+101 Partition_two [0,1,2,3,4] false 2016-02-27 null 22:55:55.230 2016-01-04 23:00:50.0 {"id":101,"part_col":"Partition_two","int_col":[0,1,2,3,4],"bool_col":false,"date_col":"2016-02-27","time_col":"22:55:55.230","ts_col":"2016-01-04 23:00:50.000"}
+102 Partition_two [1,2,3,4,5] false 2016-02-28 null 22:55:55 2016-01-05 23:01:49.0 {"id":102,"part_col":"Partition_two","int_col":[1,2,3,4,5],"bool_col":false,"date_col":"2016-02-28","time_col":"22:55:55.000","ts_col":"2016-01-05 23:01:49.000"}
+103 Partition_two [2,3,4,5,6] false 2016-02-29 null 22:55:54.770 2016-01-06 23:02:48.0 {"id":103,"part_col":"Partition_two","int_col":[2,3,4,5,6],"bool_col":false,"date_col":"2016-02-29","time_col":"22:55:54.770","ts_col":"2016-01-06 23:02:48.000"}
+104 Partition_two [3,4,5,6,7] null 2016-03-01 3.159 22:55:54.540 2016-01-07 23:03:47.0 {"id":104,"part_col":"Partition_two","int_col":[3,4,5,6,7],"date_col":"2016-03-01","float_col":3.159,"time_col":"22:55:54.540","ts_col":"2016-01-07 23:03:47.000"}
+105 Partition_two [4,5,6,7,8] false 2016-03-02 4.06 22:55:54.310 null {"id":105,"part_col":"Partition_two","int_col":[4,5,6,7,8],"bool_col":false,"date_col":"2016-03-02","float_col":4.06,"time_col":"22:55:54.310"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.plan
new file mode 100644
index 0000000..9f6b520
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.sql
new file mode 100644
index 0000000..a8ed72f
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where id between 101 and 200 order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.sql.explain
new file mode 100644
index 0000000..a5c9269
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_id.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where id between 101 and 200 order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.e_tsv
new file mode 100644
index 0000000..192b52e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.e_tsv
@@ -0,0 +1,5 @@
+1 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":1,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+2 Partition_one [-29,-28,-27,-26,-25] true 2017-12-31 1.457 22:55:55 2015-12-31 22:56:54.0 {"id":2,"part_col":"Partition_one","int_col":[-29,-28,-27,-26,-25],"bool_col":true,"date_col":"2017-12-31","float_col":1.457,"time_col":"22:55:55.000","ts_col":"2015-12-31 22:56:54.000"}
+3 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":3,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+4 Partition_one [-27,-26,-25,-24,-23] true null 3.459 22:55:54.540 2016-01-02 22:58:52.0 {"id":4,"part_col":"Partition_one","int_col":[-27,-26,-25,-24,-23],"bool_col":true,"float_col":3.459,"time_col":"22:55:54.540","ts_col":"2016-01-02 22:58:52.000"}
+5 Partition_one [-26,-25,-24,-23,-22] true 2018-01-03 4.46 22:55:54.310 2016-01-03 22:59:51.0 {"id":5,"part_col":"Partition_one","int_col":[-26,-25,-24,-23,-22],"bool_col":true,"date_col":"2018-01-03","float_col":4.46,"time_col":"22:55:54.310","ts_col":"2016-01-03 22:59:51.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.plan
new file mode 100644
index 0000000..9f6b520
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.sql
new file mode 100644
index 0000000..8cdbb73
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.sql
@@ -0,0 +1 @@
+select * from (select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet`) where id <= 100 order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.sql.explain
new file mode 100644
index 0000000..73388ed
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_item_star.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from (select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet`) where id <= 100 order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.e_tsv
new file mode 100644
index 0000000..847d987
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.e_tsv
@@ -0,0 +1,5 @@
+201 Partition_three [999,1000,1001,1002,1003] true 2017-02-27 1.357 22:00:54.310 2016-01-09 23:05:45.0 {"id":201,"part_col":"Partition_three","int_col":[999,1000,1001,1002,1003],"bool_col":true,"date_col":"2017-02-27","float_col":1.357,"time_col":"22:00:54.310","ts_col":"2016-01-09 23:05:45.000"} null null [] null null null null null {"int_col":[]}
+202 Partition_three [1000,1001,1002,1003,1004] false 2017-02-28 0.258 21:00:54.310 2016-01-10 23:06:44.0 {"id":202,"part_col":"Partition_three","int_col":[1000,1001,1002,1003,1004],"bool_col":false,"date_col":"2017-02-28","float_col":0.258,"time_col":"21:00:54.310","ts_col":"2016-01-10 23:06:44.000"} null null [] null null null null null {"int_col":[]}
+203 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":203,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"} null null [] null null null null null {"int_col":[]}
+204 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":204,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"} null null [] null null null null null {"int_col":[]}
+205 Partition_three [1003,1004,1005,1006,1007] true 2017-03-03 -3.039 null 2016-01-13 23:09:41.0 {"id":205,"part_col":"Partition_three","int_col":[1003,1004,1005,1006,1007],"bool_col":true,"date_col":"2017-03-03","float_col":-3.039,"ts_col":"2016-01-13 23:09:41.000"} null null [] null null null null null {"int_col":[]}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.plan
new file mode 100644
index 0000000..edb410e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.plan
@@ -0,0 +1,3 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=3
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.sql
new file mode 100644
index 0000000..75077a8
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t1 left join `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t2 on t1.id = t2.int_col[0] where t1.date_col > date '2017-01-01' and t1.date_col < '2017-04-01' order by t1.id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.sql.explain
new file mode 100644
index 0000000..4280e1e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_join.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t1 left join `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t2 on t1.id = t2.int_col[0] where t1.date_col > date '2017-01-01' and t1.date_col < '2017-04-01' order by t1.id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.e_tsv
new file mode 100644
index 0000000..192b52e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.e_tsv
@@ -0,0 +1,5 @@
+1 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":1,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+2 Partition_one [-29,-28,-27,-26,-25] true 2017-12-31 1.457 22:55:55 2015-12-31 22:56:54.0 {"id":2,"part_col":"Partition_one","int_col":[-29,-28,-27,-26,-25],"bool_col":true,"date_col":"2017-12-31","float_col":1.457,"time_col":"22:55:55.000","ts_col":"2015-12-31 22:56:54.000"}
+3 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":3,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+4 Partition_one [-27,-26,-25,-24,-23] true null 3.459 22:55:54.540 2016-01-02 22:58:52.0 {"id":4,"part_col":"Partition_one","int_col":[-27,-26,-25,-24,-23],"bool_col":true,"float_col":3.459,"time_col":"22:55:54.540","ts_col":"2016-01-02 22:58:52.000"}
+5 Partition_one [-26,-25,-24,-23,-22] true 2018-01-03 4.46 22:55:54.310 2016-01-03 22:59:51.0 {"id":5,"part_col":"Partition_one","int_col":[-26,-25,-24,-23,-22],"bool_col":true,"date_col":"2018-01-03","float_col":4.46,"time_col":"22:55:54.310","ts_col":"2016-01-03 22:59:51.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.plan
new file mode 100644
index 0000000..3f36223
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.sql
new file mode 100644
index 0000000..8c526d2
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where time_col > '22:30:03' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.sql.explain
new file mode 100644
index 0000000..313339e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_time_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where time_col > '22:30:03' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.e_tsv
new file mode 100644
index 0000000..48a26b0
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.e_tsv
@@ -0,0 +1,5 @@
+201 Partition_three [999,1000,1001,1002,1003] true 2017-02-27 1.357 22:00:54.310 2016-01-09 23:05:45.0 {"id":201,"part_col":"Partition_three","int_col":[999,1000,1001,1002,1003],"bool_col":true,"date_col":"2017-02-27","float_col":1.357,"time_col":"22:00:54.310","ts_col":"2016-01-09 23:05:45.000"}
+202 Partition_three [1000,1001,1002,1003,1004] false 2017-02-28 0.258 21:00:54.310 2016-01-10 23:06:44.0 {"id":202,"part_col":"Partition_three","int_col":[1000,1001,1002,1003,1004],"bool_col":false,"date_col":"2017-02-28","float_col":0.258,"time_col":"21:00:54.310","ts_col":"2016-01-10 23:06:44.000"}
+203 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":203,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"}
+204 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":204,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"}
+205 Partition_three [1003,1004,1005,1006,1007] true 2017-03-03 -3.039 null 2016-01-13 23:09:41.0 {"id":205,"part_col":"Partition_three","int_col":[1003,1004,1005,1006,1007],"bool_col":true,"date_col":"2017-03-03","float_col":-3.039,"ts_col":"2016-01-13 23:09:41.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.plan
new file mode 100644
index 0000000..9f6b520
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.sql
new file mode 100644
index 0000000..7ade509
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where ts_col > '2016-01-09 00:00:45' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.sql.explain
new file mode 100644
index 0000000..4132170
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_timestamp_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where ts_col > '2016-01-09 00:00:45' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.e_tsv
new file mode 100644
index 0000000..48a26b0
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.e_tsv
@@ -0,0 +1,5 @@
+201 Partition_three [999,1000,1001,1002,1003] true 2017-02-27 1.357 22:00:54.310 2016-01-09 23:05:45.0 {"id":201,"part_col":"Partition_three","int_col":[999,1000,1001,1002,1003],"bool_col":true,"date_col":"2017-02-27","float_col":1.357,"time_col":"22:00:54.310","ts_col":"2016-01-09 23:05:45.000"}
+202 Partition_three [1000,1001,1002,1003,1004] false 2017-02-28 0.258 21:00:54.310 2016-01-10 23:06:44.0 {"id":202,"part_col":"Partition_three","int_col":[1000,1001,1002,1003,1004],"bool_col":false,"date_col":"2017-02-28","float_col":0.258,"time_col":"21:00:54.310","ts_col":"2016-01-10 23:06:44.000"}
+203 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":203,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"}
+204 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":204,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"}
+205 Partition_three [1003,1004,1005,1006,1007] true 2017-03-03 -3.039 null 2016-01-13 23:09:41.0 {"id":205,"part_col":"Partition_three","int_col":[1003,1004,1005,1006,1007],"bool_col":true,"date_col":"2017-03-03","float_col":-3.039,"ts_col":"2016-01-13 23:09:41.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.plan
new file mode 100644
index 0000000..9f6b520
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.plan
@@ -0,0 +1,2 @@
+(?s)\A((?!Filter).)*\Z
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.sql
new file mode 100644
index 0000000..6c6564b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where part_col = 'Partition_three' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.sql.explain
new file mode 100644
index 0000000..39b90bc
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_filter_pruning_varchar_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where part_col = 'Partition_three' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.e_tsv
new file mode 100644
index 0000000..7bad66c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.e_tsv
@@ -0,0 +1,5 @@
+101 Partition_two [0,1,2,3,4] false 2016-02-27 null 22:55:55.230 2016-01-04 23:00:50.0 {"id":101,"part_col":"Partition_two","int_col":[0,1,2,3,4],"bool_col":false,"date_col":"2016-02-27","time_col":"22:55:55.230","ts_col":"2016-01-04 23:00:50.000"}
+102 Partition_two [1,2,3,4,5] false 2016-02-28 null 22:55:55 2016-01-05 23:01:49.0 {"id":102,"part_col":"Partition_two","int_col":[1,2,3,4,5],"bool_col":false,"date_col":"2016-02-28","time_col":"22:55:55.000","ts_col":"2016-01-05 23:01:49.000"}
+103 Partition_two [2,3,4,5,6] false 2016-02-29 null 22:55:54.770 2016-01-06 23:02:48.0 {"id":103,"part_col":"Partition_two","int_col":[2,3,4,5,6],"bool_col":false,"date_col":"2016-02-29","time_col":"22:55:54.770","ts_col":"2016-01-06 23:02:48.000"}
+105 Partition_two [4,5,6,7,8] false 2016-03-02 4.06 22:55:54.310 null {"id":105,"part_col":"Partition_two","int_col":[4,5,6,7,8],"bool_col":false,"date_col":"2016-03-02","float_col":4.06,"time_col":"22:55:54.310"}
+106 Partition_two [5,6,7,8,9] false 2016-02-27 null 22:55:55.230 2016-01-04 23:00:50.0 {"id":106,"part_col":"Partition_two","int_col":[5,6,7,8,9],"bool_col":false,"date_col":"2016-02-27","time_col":"22:55:55.230","ts_col":"2016-01-04 23:00:50.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.plan
new file mode 100644
index 0000000..d35b083
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.plan
@@ -0,0 +1,2 @@
+.*Filter
+Scan.*numFiles=1.*numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.sql
new file mode 100644
index 0000000..7423dbe
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where bool_col is false order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.sql.explain
new file mode 100644
index 0000000..812d0f9
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_bool_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where bool_col is false order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.e_tsv
new file mode 100644
index 0000000..55714c3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.e_tsv
@@ -0,0 +1,5 @@
+1 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":1,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+2 Partition_one [-29,-28,-27,-26,-25] true 2017-12-31 1.457 22:55:55 2015-12-31 22:56:54.0 {"id":2,"part_col":"Partition_one","int_col":[-29,-28,-27,-26,-25],"bool_col":true,"date_col":"2017-12-31","float_col":1.457,"time_col":"22:55:55.000","ts_col":"2015-12-31 22:56:54.000"}
+4 Partition_one [-27,-26,-25,-24,-23] true null 3.459 22:55:54.540 2016-01-02 22:58:52.0 {"id":4,"part_col":"Partition_one","int_col":[-27,-26,-25,-24,-23],"bool_col":true,"float_col":3.459,"time_col":"22:55:54.540","ts_col":"2016-01-02 22:58:52.000"}
+5 Partition_one [-26,-25,-24,-23,-22] true 2018-01-03 4.46 22:55:54.310 2016-01-03 22:59:51.0 {"id":5,"part_col":"Partition_one","int_col":[-26,-25,-24,-23,-22],"bool_col":true,"date_col":"2018-01-03","float_col":4.46,"time_col":"22:55:54.310","ts_col":"2016-01-03 22:59:51.000"}
+6 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":6,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.plan
new file mode 100644
index 0000000..2036501
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.sql
new file mode 100644
index 0000000..adc1e7c
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t where t.nested_group.int_col[2] < 0 order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.sql.explain
new file mode 100644
index 0000000..2fb918d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_complex_field.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t where t.nested_group.int_col[2] < 0 order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.e_tsv
new file mode 100644
index 0000000..d077c1f
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.e_tsv
@@ -0,0 +1,5 @@
+203 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":203,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"}
+204 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":204,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"}
+205 Partition_three [1003,1004,1005,1006,1007] true 2017-03-03 -3.039 null 2016-01-13 23:09:41.0 {"id":205,"part_col":"Partition_three","int_col":[1003,1004,1005,1006,1007],"bool_col":true,"date_col":"2017-03-03","float_col":-3.039,"ts_col":"2016-01-13 23:09:41.000"}
+208 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":208,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"}
+209 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":209,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.plan
new file mode 100644
index 0000000..2036501
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.sql
new file mode 100644
index 0000000..0870a7d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where date_col between date '2017-03-01' and date '2017-03-03' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.sql.explain
new file mode 100644
index 0000000..16e0c04
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_date_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where date_col between date '2017-03-01' and date '2017-03-03' order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.e_tsv
new file mode 100644
index 0000000..d077c1f
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.e_tsv
@@ -0,0 +1,5 @@
+203 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":203,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"}
+204 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":204,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"}
+205 Partition_three [1003,1004,1005,1006,1007] true 2017-03-03 -3.039 null 2016-01-13 23:09:41.0 {"id":205,"part_col":"Partition_three","int_col":[1003,1004,1005,1006,1007],"bool_col":true,"date_col":"2017-03-03","float_col":-3.039,"ts_col":"2016-01-13 23:09:41.000"}
+208 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":208,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"}
+209 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":209,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.plan
new file mode 100644
index 0000000..2036501
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.sql
new file mode 100644
index 0000000..0cb22e3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where not float_col > 0.1 order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.sql.explain
new file mode 100644
index 0000000..65cc2f2
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_float_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where not float_col > 0.1 order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.e_tsv
new file mode 100644
index 0000000..55714c3
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.e_tsv
@@ -0,0 +1,5 @@
+1 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":1,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+2 Partition_one [-29,-28,-27,-26,-25] true 2017-12-31 1.457 22:55:55 2015-12-31 22:56:54.0 {"id":2,"part_col":"Partition_one","int_col":[-29,-28,-27,-26,-25],"bool_col":true,"date_col":"2017-12-31","float_col":1.457,"time_col":"22:55:55.000","ts_col":"2015-12-31 22:56:54.000"}
+4 Partition_one [-27,-26,-25,-24,-23] true null 3.459 22:55:54.540 2016-01-02 22:58:52.0 {"id":4,"part_col":"Partition_one","int_col":[-27,-26,-25,-24,-23],"bool_col":true,"float_col":3.459,"time_col":"22:55:54.540","ts_col":"2016-01-02 22:58:52.000"}
+5 Partition_one [-26,-25,-24,-23,-22] true 2018-01-03 4.46 22:55:54.310 2016-01-03 22:59:51.0 {"id":5,"part_col":"Partition_one","int_col":[-26,-25,-24,-23,-22],"bool_col":true,"date_col":"2018-01-03","float_col":4.46,"time_col":"22:55:54.310","ts_col":"2016-01-03 22:59:51.000"}
+6 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":6,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.plan
new file mode 100644
index 0000000..2036501
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.sql
new file mode 100644
index 0000000..4027f5b
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where int_col[1] < 0 order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.sql.explain
new file mode 100644
index 0000000..528b58e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_int_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where int_col[1] < 0 order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.e_tsv
new file mode 100644
index 0000000..d57a580
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.e_tsv
@@ -0,0 +1,5 @@
+1 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":1,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+6 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":6,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+11 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":11,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+16 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":16,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
+21 Partition_one [-30,-29,-28,-27,-26] null 2017-12-30 0.456 22:55:55.230 null {"id":21,"part_col":"Partition_one","int_col":[-30,-29,-28,-27,-26],"date_col":"2017-12-30","float_col":0.456,"time_col":"22:55:55.230"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.plan
new file mode 100644
index 0000000..e0474ff
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.sql
new file mode 100644
index 0000000..a34954f
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.sql
@@ -0,0 +1 @@
+select * from (select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet`) where bool_col is null order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.sql.explain
new file mode 100644
index 0000000..1ae0183
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_item_star.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from (select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet`) where bool_col is null order by id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.e_tsv
new file mode 100644
index 0000000..f1ce0d2
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.e_tsv
@@ -0,0 +1,5 @@
+203 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":203,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"} null null [] null null null null null {"int_col":[]}
+204 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":204,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"} null null [] null null null null null {"int_col":[]}
+205 Partition_three [1003,1004,1005,1006,1007] true 2017-03-03 -3.039 null 2016-01-13 23:09:41.0 {"id":205,"part_col":"Partition_three","int_col":[1003,1004,1005,1006,1007],"bool_col":true,"date_col":"2017-03-03","float_col":-3.039,"ts_col":"2016-01-13 23:09:41.000"} null null [] null null null null null {"int_col":[]}
+208 Partition_three [] false 2017-03-01 -0.841 20:00:54.310 2016-01-11 23:07:43.0 {"id":208,"part_col":"Partition_three","int_col":[],"bool_col":false,"date_col":"2017-03-01","float_col":-0.841,"time_col":"20:00:54.310","ts_col":"2016-01-11 23:07:43.000"} null null [] null null null null null {"int_col":[]}
+209 Partition_three [1002,1003,1004,1005,1006] true 2017-03-02 -1.94 19:00:54.310 2016-01-12 23:08:42.0 {"id":209,"part_col":"Partition_three","int_col":[1002,1003,1004,1005,1006],"bool_col":true,"date_col":"2017-03-02","float_col":-1.94,"time_col":"19:00:54.310","ts_col":"2016-01-12 23:08:42.000"} null null [] null null null null null {"int_col":[]}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.plan
new file mode 100644
index 0000000..fe670a4
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.plan
@@ -0,0 +1,3 @@
+Scan.*numFiles=1.*numRowGroups=3
+Filter
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.sql
new file mode 100644
index 0000000..b15bc8f
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t1 left join `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t2 on t1.id = t2.int_col[0] where t1.float_col < 0 order by t1.id limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.sql.explain
new file mode 100644
index 0000000..ec02912
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_join.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t1 left join `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t2 on t1.id = t2.int_col[0] where t1.float_col < 0;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.e_tsv
new file mode 100644
index 0000000..ab96968
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.e_tsv
@@ -0,0 +1,5 @@
+2 Partition_one [-29,-28,-27,-26,-25] true 2017-12-31 1.457 22:55:55 2015-12-31 22:56:54.0 {"id":2,"part_col":"Partition_one","int_col":[-29,-28,-27,-26,-25],"bool_col":true,"date_col":"2017-12-31","float_col":1.457,"time_col":"22:55:55.000","ts_col":"2015-12-31 22:56:54.000"}
+3 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":3,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+4 Partition_one [-27,-26,-25,-24,-23] true null 3.459 22:55:54.540 2016-01-02 22:58:52.0 {"id":4,"part_col":"Partition_one","int_col":[-27,-26,-25,-24,-23],"bool_col":true,"float_col":3.459,"time_col":"22:55:54.540","ts_col":"2016-01-02 22:58:52.000"}
+5 Partition_one [-26,-25,-24,-23,-22] true 2018-01-03 4.46 22:55:54.310 2016-01-03 22:59:51.0 {"id":5,"part_col":"Partition_one","int_col":[-26,-25,-24,-23,-22],"bool_col":true,"date_col":"2018-01-03","float_col":4.46,"time_col":"22:55:54.310","ts_col":"2016-01-03 22:59:51.000"}
+7 Partition_one [-29,-28,-27,-26,-25] true 2017-12-31 1.457 22:55:55 2015-12-31 22:56:54.0 {"id":7,"part_col":"Partition_one","int_col":[-29,-28,-27,-26,-25],"bool_col":true,"date_col":"2017-12-31","float_col":1.457,"time_col":"22:55:55.000","ts_col":"2015-12-31 22:56:54.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.plan
new file mode 100644
index 0000000..e0474ff
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.sql
new file mode 100644
index 0000000..a19179a
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where not time_col < '22:01:00' and ts_col is not null order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.sql.explain
new file mode 100644
index 0000000..f6311cd
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_time_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where not time_col < '22:01:00' and ts_col is not null order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.e_tsv b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.e_tsv
new file mode 100644
index 0000000..b6856e4
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.e_tsv
@@ -0,0 +1,5 @@
+3 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":3,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+8 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":8,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+13 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":13,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+18 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":18,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
+23 Partition_one [] true null 2.458 22:55:54.770 2016-01-01 22:57:53.0 {"id":23,"part_col":"Partition_one","int_col":[],"bool_col":true,"float_col":2.458,"time_col":"22:55:54.770","ts_col":"2016-01-01 22:57:53.000"}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.plan
new file mode 100644
index 0000000..e0474ff
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.plan
@@ -0,0 +1,2 @@
+Filter
+Scan.*numFiles=1.*numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.sql b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.sql
new file mode 100644
index 0000000..a3c3e03
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.sql
@@ -0,0 +1 @@
+select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where ts_col in ('2016-01-09 23:05:45', '2016-01-13 23:09:41', '2016-01-01 22:57:53') order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.sql.explain
new file mode 100644
index 0000000..ccaaa0e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_no_filter_pruning_timestamp_col.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` where ts_col in ('2016-01-09 23:05:45', '2016-01-13 23:09:41', '2016-01-01 22:57:53') order by id limit 5;
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_0.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_0.plan
new file mode 100644
index 0000000..5ba9531
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_0.plan
@@ -0,0 +1 @@
+Scan.*numFiles=1.*numRowGroups=1.*columns=\[`int_col`\[2\]\]
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_0.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_0.sql.explain
new file mode 100644
index 0000000..bf6b1da
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_0.sql.explain
@@ -0,0 +1 @@
+explain plan for select int_col[2] from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` limit 0;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_100.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_100.plan
new file mode 100644
index 0000000..7c0d3ad
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_100.plan
@@ -0,0 +1 @@
+Scan.*numFiles=1.*numRowGroups=1.*columns=\[`nested_group`\.`int_col`\[0\]\]
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_100.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_100.sql.explain
new file mode 100644
index 0000000..d38cf71
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_100.sql.explain
@@ -0,0 +1 @@
+explain plan for select t.nested_group.int_col[0] from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t limit 100;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_101.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_101.plan
new file mode 100644
index 0000000..03d364d
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_101.plan
@@ -0,0 +1 @@
+Scan.*numFiles=1.*numRowGroups=2.*columns=\[`nested_group`\.`float_col`\]
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_101.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_101.sql.explain
new file mode 100644
index 0000000..6f6c315
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_101.sql.explain
@@ -0,0 +1 @@
+explain plan for select t.nested_group.float_col from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` t limit 101;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_5.plan b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_5.plan
new file mode 100644
index 0000000..279974e
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_5.plan
@@ -0,0 +1 @@
+Scan.*numFiles=1.*numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_5.sql.explain b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_5.sql.explain
new file mode 100644
index 0000000..bb43206
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/DRILL_5796_push_limit_5.sql.explain
@@ -0,0 +1 @@
+explain plan for select * from `parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet` limit 5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/multiple_row_groups.json b/framework/resources/Functional/filter/pushdown/multiple_row_groups/multiple_row_groups.json
new file mode 100644
index 0000000..e5b5958
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/multiple_row_groups.json
@@ -0,0 +1,26 @@
+{
+ "testId": "filter_pushdown_multiple_row_groups",
+ "type": "group",
+ "description": "Filter pushdown tests for parquets with multiple row groups: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet",
+ "dest": "parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/multiple_row_groups/multiple_row_groups_plan.json b/framework/resources/Functional/filter/pushdown/multiple_row_groups/multiple_row_groups_plan.json
new file mode 100644
index 0000000..9878e73
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/multiple_row_groups/multiple_row_groups_plan.json
@@ -0,0 +1,26 @@
+{
+ "testId": "filter_pushdown_multiple_row_groups_plan",
+ "type": "group",
+ "description": "Filter pushdown tests for parquets with multiple row groups: these tests verify physical plan correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.plan",
+ "verification-type": [
+ "regex-no-order"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet",
+ "dest": "parquet_storage/DRILL_5796/DRILL_5796_test_data.parquet"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/plan.json b/framework/resources/Functional/filter/pushdown/plan/regex/plan.json
deleted file mode 100755
index ff23ed0..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex/plan.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "testId": "filter_pushdown_plan",
- "type": "group",
- "description": "Filter pushdown tests: these tests verify query plans for the queries that are in ../data directory",
- "categories": [
- "functional"
- ],
- "matrices": [
- {
- "query-file": ".*.sql.explain",
- "schema": "dfs.subqueries",
- "output-format": "tsv",
- "expected-file": ".*.plan",
- "verification-type": [
- "regex"
- ]
- }
- ],
- "datasources": [
- {
- "mode": "cp",
- "src": "Datasources/subqueries",
- "dest": "subqueries"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_data_source.csv",
- "dest": "parquet_storage/DRILL_6118/DRILL_6118_data_source.csv"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_complex.parquet",
- "dest": "parquet_storage/DRILL_6118/DRILL_6118_complex.parquet"
- },
- {
- "mode": "cp",
- "src": "Datasources/ctas/Transitive_closure.csv",
- "dest": "/drill/testdata/transitive_closure/filterPushdown/Transitive_closure.csv"
- },
- {
- "mode": "gen",
- "src": "Datasources/parquet_storage/DRILL-6118/DRILL_6118_execute_ddl.sh"
- },
- {
- "mode": "gen",
- "src": "Datasources/ctas/Transitive_closure_gen.sh Transitive_closure_pushDown.ddl drillTestDir /drill/testdata/transitive_closure/filterPushdown/",
- "dest": ""
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL_6174/DRILL_6174_test_data",
- "dest": "parquet_storage/DRILL_6174/DRILL_6174_test_data"
- },
- {
- "mode": "cp",
- "src": "Datasources/parquet_storage/DRILL_3855/DRILL_3855_test_data",
- "dest": "parquet_storage/DRILL_3855/DRILL_3855_test_data"
- }
- ]
-}
-
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_varchar_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_varchar_plan.e_tsv
deleted file mode 100644
index 7f971d1..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_time_varchar_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_date_plan.e_tsv
deleted file mode 100644
index 6292354..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_date_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp_plan.e_tsv
deleted file mode 100644
index 6292354..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_timestamp_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar_plan.e_tsv
deleted file mode 100644
index 6292354..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_timestamp_varchar_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_date_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_date_plan.e_tsv
deleted file mode 100644
index 6292354..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_date_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_varchar_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_varchar_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_ex_varchar_varchar_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_im_date_timestamp_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_im_date_timestamp_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_cast_im_date_timestamp_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_eq_false_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_eq_false_plan.e_tsv
deleted file mode 100644
index 7f971d1..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_eq_false_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_eq_false_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_eq_false_plan.sql
deleted file mode 100644
index 8d63c2b..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_eq_false_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_false_and_is_not_null_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_false_and_is_not_null_plan.e_tsv
deleted file mode 100644
index 6292354..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_false_and_is_not_null_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_false_and_is_not_null_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_false_and_is_not_null_plan.sql
deleted file mode 100644
index f747bbd..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_false_and_is_not_null_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 = false and c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_null_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_null_plan.e_tsv
deleted file mode 100644
index d9b9ad0..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_null_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_null_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_null_plan.sql
deleted file mode 100644
index 8e965a9..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_null_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_true_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_true_plan.e_tsv
deleted file mode 100644
index 7f971d1..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_true_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_true_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_true_plan.sql
deleted file mode 100644
index dc17d91..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_not_true_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_null_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_null_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_null_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_null_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_null_plan.sql
deleted file mode 100644
index e4676c3..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_null_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_true_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_true_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_true_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_true_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_true_plan.sql
deleted file mode 100644
index c9f18ed..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_is_true_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where c2 is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_eq_false_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_eq_false_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_eq_false_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_eq_false_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_eq_false_plan.sql
deleted file mode 100644
index 7d9dd8a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_eq_false_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_or_is_null_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_or_is_null_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_or_is_null_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_or_is_null_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_or_is_null_plan.sql
deleted file mode 100644
index e94e640..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_or_is_null_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 = false or c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_plan.e_tsv
deleted file mode 100644
index e7df74c..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d2/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_plan.sql
deleted file mode 100644
index a3f5cfa..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_false_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c2 is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_null_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_null_plan.e_tsv
deleted file mode 100644
index d9b9ad0..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_null_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d3/0_0_0.parquet
-path=.*/parquet_storage/DRILL_6174/DRILL_6174_test_data/d1/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_null_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_null_plan.sql
deleted file mode 100644
index d74f4b2..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6174_filter_push_down_not_is_null_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c1, c2, c3 from dfs.drillTestDir.`parquet_storage/DRILL_6174/DRILL_6174_test_data` where not c3 is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.sql
deleted file mode 100644
index a795663..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_array[3] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.sql
deleted file mode 100644
index bcae53f..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_array_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_array[0] between 200 and 400;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values_plan.sql
deleted file mode 100644
index 8d0643a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_complex_field.nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.sql
deleted file mode 100644
index 6c6c6ad..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_array_plan.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-explain plan for
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[2].nested_complex_field.nested_array[2] >= 1489860699000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.sql
deleted file mode 100644
index ca4169b..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_null_values_plan.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[0].nested_complex_field.nested_field is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.sql
deleted file mode 100644
index 6b6599f..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_complex_field_nested_field_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[2].nested_complex_field.nested_field > 200;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values_plan.sql
deleted file mode 100644
index b694fd4..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_plan.e_tsv
deleted file mode 100644
index 05bed23..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_plan.sql
deleted file mode 100644
index f2bc42a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_field_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.list_of_complex_fields[1].nested_field is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values_plan.sql
deleted file mode 100644
index 7a4b1d8..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_null_values_plan.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-explain plan for
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_array[2] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_plan.e_tsv
deleted file mode 100644
index 50eae70..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_plan.sql
deleted file mode 100644
index cf0f0a9..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_array_plan.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-explain plan for
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_array[0] between 1330 and 1340;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values_plan.sql
deleted file mode 100644
index c523abc..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_null_values_plan.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-explain plan for
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[0].nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_plan.e_tsv
deleted file mode 100644
index 958dadb..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_plan.sql
deleted file mode 100644
index 591370a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_list_of_complex_fields_nested_list_of_complex_fields_nested_field_plan.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-explain plan for
-select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.list_of_complex_fields[2].nested_list_of_complex_fields[1].nested_field is false;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_null_values_plan.sql
deleted file mode 100644
index 9680fe0..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where not t.complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_plan.e_tsv
deleted file mode 100644
index 05bed23..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_plan.sql
deleted file mode 100644
index 48be24e..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_array_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_array[3] is not true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values_plan.sql
deleted file mode 100644
index 86436f8..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_plan.sql
deleted file mode 100644
index 800a08f..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_array_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_array[3] is true;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values_plan.e_tsv
deleted file mode 100644
index 50eae70..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values_plan.sql
deleted file mode 100644
index f7ff7a4..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_plan.e_tsv
deleted file mode 100644
index 958dadb..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_plan.sql
deleted file mode 100644
index 8051beb..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_complex_field_nested_field_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_complex_field.nested_field > 1483223487000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_null_values_plan.e_tsv
deleted file mode 100644
index 50eae70..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_null_values_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_null_values_plan.sql
deleted file mode 100644
index 154fe88..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_plan.sql
deleted file mode 100644
index 3b676f6..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_field_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_field = 111;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values_plan.sql
deleted file mode 100644
index aa1f639..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[1].nested_array[3] is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_pan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_pan.e_tsv
deleted file mode 100644
index 50eae70..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_pan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_pan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_pan.sql
deleted file mode 100644
index e24a752..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_array_pan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.complex_field.nested_list_of_complex_fields[2].nested_array[2] > 1136;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values_plan.e_tsv
deleted file mode 100644
index e32322f..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values_plan.sql
deleted file mode 100644
index 719c674..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_null_values_plan.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where not t.complex_field.nested_list_of_complex_fields[0].nested_field is null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_plan.e_tsv
deleted file mode 100644
index 958dadb..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_plan.e_tsv
+++ /dev/null
@@ -1,4 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=1
-numRowGroups=1
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_plan.sql
deleted file mode 100644
index 396701e..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_nested_list_of_complex_fields_nested_field_plan.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t
-where t.complex_field.nested_list_of_complex_fields[0].nested_field > 1484311774000;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_null_values_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_null_values_plan.e_tsv
deleted file mode 100644
index 9af284a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_null_values_plan.e_tsv
+++ /dev/null
@@ -1,6 +0,0 @@
-Scan
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-path=maprfs://.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d1/DRILL_6259_test_data.parquet
-numFiles=3
-numRowGroups=3
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_null_values_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_null_values_plan.sql
deleted file mode 100644
index cc8cfea..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_null_values_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] is not null;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_plan.e_tsv
deleted file mode 100644
index 05bed23..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d3/DRILL_6259_test_data.parquet
-path=.*parquet_storage/DRILL_6259/DRILL_6259_test_data/d2/DRILL_6259_test_data.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_plan.sql
deleted file mode 100644
index bb0c7d1..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/DRILL_6259_filter_push_down_top_level_array_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`parquet_storage/DRILL_6259/DRILL_6259_test_data` t where t.top_level_array[2] >= 20;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.sql
deleted file mode 100644
index b5fda89..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_subqueries_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`) where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_view_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_view_plan.e_tsv
deleted file mode 100644
index 72f3ff2..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_view_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/DRILL_6118_parquet_partitioned_by_folders/d1/0_0_0.parquet
-path=.*/DRILL_6118_parquet_partitioned_by_folders/d3/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_view_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_view_plan.sql
deleted file mode 100644
index a571ec5..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_filter_push_down_with_view_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders_view` where c1>2;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_filter_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_filter_plan.sql
deleted file mode 100644
index 49bbd6f..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_filter_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c3 from (select * from dfs.drillTestDir.`parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where t.c1.values_list[3]=15;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_project_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_project_plan.sql
deleted file mode 100644
index c667697..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_complex_project_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select t.c1.values_list[3] from (select * from dfs.drillTestDir.`parquet_storage/DRILL_6118/DRILL_6118_complex.parquet`) t where c2='value_4_6';
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.sql
deleted file mode 100644
index 14f83c1..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_filter_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select distinct c1 from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`) where c1*2<5;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_project_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_project_plan.e_tsv
deleted file mode 100644
index 96b5b6d..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_project_plan.e_tsv
+++ /dev/null
@@ -1,2 +0,0 @@
-Scan
-columns=\[`c1`\]
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_project_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_project_plan.sql
deleted file mode 100644
index 1f8d727..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_expression_in_project_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select distinct c1+2 from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`) where c1>3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_subqueries_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_subqueries_plan.e_tsv
deleted file mode 100644
index 163a3d2..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_subqueries_plan.e_tsv
+++ /dev/null
@@ -1,2 +0,0 @@
-Scan
-columns=\[`c3`, `c1`\]
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_subqueries_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_subqueries_plan.sql
deleted file mode 100644
index 45f3127..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_subqueries_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c3 from (select * from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning`) where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_view_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_view_plan.e_tsv
deleted file mode 100644
index 163a3d2..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_view_plan.e_tsv
+++ /dev/null
@@ -1,2 +0,0 @@
-Scan
-columns=\[`c3`, `c1`\]
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_view_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_view_plan.sql
deleted file mode 100644
index c6e5c80..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6118_project_push_into_scan_with_view_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c3 from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning_view` where c1<3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_cte_view_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_cte_view_plan.sql
deleted file mode 100644
index 64da978..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_cte_view_plan.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-explain plan for
-with t as (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders_view`)
-select * from (select * from (select * from t)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_more_layers_plan.e_tsv b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_more_layers_plan.e_tsv
deleted file mode 100644
index 72f3ff2..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_more_layers_plan.e_tsv
+++ /dev/null
@@ -1,5 +0,0 @@
-Scan
-path=.*/DRILL_6118_parquet_partitioned_by_folders/d1/0_0_0.parquet
-path=.*/DRILL_6118_parquet_partitioned_by_folders/d3/0_0_0.parquet
-numFiles=2
-numRowGroups=2
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_more_layers_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_more_layers_plan.sql
deleted file mode 100644
index 4292c5a..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_more_layers_plan.sql
+++ /dev/null
@@ -1,8 +0,0 @@
-explain plan for
-select * from
-(select * from
- (select * from
- (select * from
- (select * from
- (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`)))))
-where c1 between 3 and 4;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_plan.sql
deleted file mode 100644
index 31f96a1..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_filter_push_down_nested_subqueries_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select * from (select * from (select * from dfs.drillTestDir.`DRILL_6118_parquet_partitioned_by_folders`)) where c1 < 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_project_push_into_scan_nested_subqueries_plan.sql b/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_project_push_into_scan_nested_subqueries_plan.sql
deleted file mode 100644
index 1815f28..0000000
--- a/framework/resources/Functional/filter/pushdown/plan/regex_no_order/drill_6199_project_push_into_scan_nested_subqueries_plan.sql
+++ /dev/null
@@ -1 +0,0 @@
-explain plan for select c3 from (select * from (select * from dfs.drillTestDir.`DRILL_6118_parquet_without_partitioning`)) where c1 = 3;
\ No newline at end of file
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_multiple_union_filter_pushdown.e_tsv b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_multiple_union_filter_pushdown.e_tsv
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_multiple_union_filter_pushdown.plan b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_multiple_union_filter_pushdown.plan
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_multiple_union_filter_pushdown.sql b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.sql
similarity index 68%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_multiple_union_filter_pushdown.sql
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.sql
index 1384004..c0552d7 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_multiple_union_filter_pushdown.sql
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.sql
@@ -1,14 +1,14 @@
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_one', 'Partition_two')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_two', 'Partition_three')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_one', 'Partition_two', 'Partition_three'))
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_multiple_union_filter_pushdown.sql.explain b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.sql.explain
similarity index 69%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_multiple_union_filter_pushdown.sql.explain
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.sql.explain
index 2fb5d16..7b19b68 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_multiple_union_filter_pushdown.sql.explain
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_multiple_union_filter_pushdown.sql.explain
@@ -1,15 +1,15 @@
explain plan for
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_one', 'Partition_two')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_two', 'Partition_three')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_one', 'Partition_two', 'Partition_three'))
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_all_filter_pushdown.e_tsv b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_all_filter_pushdown.e_tsv
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_all_filter_pushdown.plan b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_all_filter_pushdown.plan
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_all_filter_pushdown.sql b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.sql
similarity index 70%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_all_filter_pushdown.sql
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.sql
index 86337ff..32379a3 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_all_filter_pushdown.sql
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.sql
@@ -1,10 +1,10 @@
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_one' or part_col = 'Partition_two'
union all
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_two' or part_col = 'Partition_three')
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_all_filter_pushdown.sql.explain b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.sql.explain
similarity index 71%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_all_filter_pushdown.sql.explain
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.sql.explain
index 5653fdd..f68faca 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_all_filter_pushdown.sql.explain
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_all_filter_pushdown.sql.explain
@@ -1,11 +1,11 @@
explain plan for
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_one' or part_col = 'Partition_two'
union all
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_two' or part_col = 'Partition_three')
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_empty_data_filter_pushdown.e_tsv b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_empty_data_filter_pushdown.e_tsv
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_empty_data_filter_pushdown.plan b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_empty_data_filter_pushdown.plan
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_empty_data_filter_pushdown.sql b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.sql
similarity index 66%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_empty_data_filter_pushdown.sql
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.sql
index c5eac01..4eb859b 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_empty_data_filter_pushdown.sql
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.sql
@@ -1,14 +1,14 @@
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_one', 'Partition_two')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_two', 'Partition_three')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where float_col > 10)
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_empty_data_filter_pushdown.sql.explain b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.sql.explain
similarity index 67%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_empty_data_filter_pushdown.sql.explain
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.sql.explain
index dd36ede..bc0784c 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_empty_data_filter_pushdown.sql.explain
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_empty_data_filter_pushdown.sql.explain
@@ -1,15 +1,15 @@
explain plan for
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_one', 'Partition_two')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col in ('Partition_two', 'Partition_three')
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where float_col > 10)
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_filter_pushdown.e_tsv b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.e_tsv
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_filter_pushdown.e_tsv
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.e_tsv
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_filter_pushdown.plan b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.plan
similarity index 100%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_filter_pushdown.plan
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.plan
diff --git a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_filter_pushdown.sql b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.sql
similarity index 70%
rename from framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_filter_pushdown.sql
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.sql
index 9ac818d..fe7448a 100644
--- a/framework/resources/Functional/filter/pushdown/data/DRILL_3855_union_filter_pushdown.sql
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.sql
@@ -1,10 +1,10 @@
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_one' or part_col = 'Partition_two'
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_two' or part_col = 'Partition_three')
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_filter_pushdown.sql.explain b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.sql.explain
similarity index 71%
rename from framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_filter_pushdown.sql.explain
rename to framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.sql.explain
index 4383b18..6fb887e 100644
--- a/framework/resources/Functional/filter/pushdown/plan/regex/DRILL_3855_union_filter_pushdown.sql.explain
+++ b/framework/resources/Functional/filter/pushdown/union/DRILL_3855_union_filter_pushdown.sql.explain
@@ -1,11 +1,11 @@
explain plan for
with t as
(select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_one' or part_col = 'Partition_two'
union
select id, part_col, int_col, bool_col, date_col, float_col, time_col, ts_col
- from dfs.drillTestDir.`parquet_storage/DRILL_3855/DRILL_3855_test_data`
+ from `parquet_storage/DRILL_3855/DRILL_3855_test_data`
where part_col = 'Partition_two' or part_col = 'Partition_three')
select id
from t
diff --git a/framework/resources/Functional/filter/pushdown/union/data.json b/framework/resources/Functional/filter/pushdown/union/data.json
new file mode 100644
index 0000000..f9e9bfd
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/union/data.json
@@ -0,0 +1,27 @@
+{
+ "testId": "filter_pushdown_union",
+ "type": "group",
+ "description": "Filter pushdown tests with union: these tests verify query correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.e_tsv",
+ "verification-type": [
+ "in-memory"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_3855/DRILL_3855_test_data",
+ "dest": "parquet_storage/DRILL_3855/DRILL_3855_test_data"
+ }
+ ]
+}
+
diff --git a/framework/resources/Functional/filter/pushdown/union/plan.json b/framework/resources/Functional/filter/pushdown/union/plan.json
new file mode 100755
index 0000000..6af6764
--- /dev/null
+++ b/framework/resources/Functional/filter/pushdown/union/plan.json
@@ -0,0 +1,27 @@
+{
+ "testId": "filter_pushdown_union_plan",
+ "type": "group",
+ "description": "Filter pushdown tests with union: these tests verify physical plan correctness",
+ "categories": [
+ "functional"
+ ],
+ "matrices": [
+ {
+ "query-file": ".*.sql.explain",
+ "schema": "dfs.drillTestDir",
+ "output-format": "tsv",
+ "expected-file": ".*.plan",
+ "verification-type": [
+ "regex"
+ ]
+ }
+ ],
+ "datasources": [
+ {
+ "mode": "cp",
+ "src": "Datasources/parquet_storage/DRILL_3855/DRILL_3855_test_data",
+ "dest": "parquet_storage/DRILL_3855/DRILL_3855_test_data"
+ }
+ ]
+}
+