You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by st...@apache.org on 2026/07/26 23:42:37 UTC

(impala) branch master updated (f435772b2 -> 08c8cf9b7)

This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git


    from f435772b2 IMPALA-15211: Fix file count for iceberg_lineitem_sixblocks in test_web_pages.py
     new 4d6b729d0 IMPALA-15101: Add Iceberg UUID primitive type
     new 08c8cf9b7 IMPALA-15019: Avoid materializing non-projected filtered partition column.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 be/src/codegen/llvm-codegen.cc                     |   1 +
 be/src/exprs/anyval-util.cc                        |   6 +
 be/src/exprs/anyval-util.h                         |   3 +
 be/src/exprs/null-literal.cc                       |   2 +-
 be/src/exprs/scalar-expr.inline.h                  |   2 +-
 be/src/exprs/scalar-fn-call.cc                     |   3 +-
 be/src/exprs/slot-ref.cc                           |  12 +-
 be/src/runtime/descriptors.cc                      |   3 +
 be/src/runtime/types.cc                            |  13 +-
 be/src/runtime/types.h                             |  17 +-
 be/src/udf/udf.h                                   |   8 +-
 be/src/util/CMakeLists.txt                         |   2 +
 be/src/util/symbols-util.cc                        |   1 +
 be/src/util/uuid-util-test.cc                      |  84 +++
 be/src/util/uuid-util.h                            |  79 +++
 common/thrift/Types.thrift                         |   1 +
 fe/src/main/cup/sql-parser.cup                     |  13 +-
 .../impala/analysis/AlterTableAddColsStmt.java     |   5 +
 .../impala/analysis/AlterTableAlterColStmt.java    |   4 +
 .../impala/analysis/AlterTableReplaceColsStmt.java |   4 +
 .../apache/impala/analysis/BinaryPredicate.java    |   2 +
 .../java/org/apache/impala/analysis/CaseExpr.java  |   2 +
 .../java/org/apache/impala/analysis/CastExpr.java  |   2 +
 .../java/org/apache/impala/analysis/ColumnDef.java |   7 +
 .../apache/impala/analysis/CreateTableStmt.java    |   6 +
 .../org/apache/impala/analysis/InPredicate.java    |   2 +
 .../apache/impala/analysis/IsNullPredicate.java    |   2 +
 .../java/org/apache/impala/analysis/SlotRef.java   |   3 +
 .../java/org/apache/impala/catalog/BuiltinsDb.java |   8 +
 .../java/org/apache/impala/catalog/Column.java     |   2 +-
 .../org/apache/impala/catalog/DataSourceTable.java |   1 +
 .../java/org/apache/impala/catalog/Function.java   |   1 +
 .../org/apache/impala/catalog/PrimitiveType.java   |   2 +
 .../org/apache/impala/catalog/ScalarFunction.java  |   3 +
 .../java/org/apache/impala/catalog/ScalarType.java |   5 +-
 .../main/java/org/apache/impala/catalog/Type.java  |  42 ++
 ...daCompatibility.java => UuidCompatibility.java} |  12 +-
 .../apache/impala/util/IcebergSchemaConverter.java |  10 +-
 fe/src/main/jflex/sql-scanner.flex                 |   1 +
 .../org/apache/impala/analysis/AnalyzeDDLTest.java |  59 +-
 .../apache/impala/analysis/AnalyzeExprsTest.java   |  18 +-
 .../org/apache/impala/analysis/ParserTest.java     |  20 +
 .../impala/calcite/rel/node/ImpalaFilterRel.java   |   4 +
 .../impala/calcite/rel/node/ImpalaHdfsScanRel.java |  44 ++
 .../impala/calcite/rel/node/ImpalaProjectRel.java  |  50 +-
 .../calcite/rel/node/ParentPlanRelContext.java     |  27 +
 .../impala/calcite/service/CalciteOptimizer.java   |   7 +-
 .../java/org/apache/impala/CompatibilityTest.java  |   7 +
 .../PlannerTest/calcite_tpcds/tpcds-q01.test       |  81 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q02.test       | 150 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q03.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q04.test       | 234 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q05.test       | 210 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q06.test       | 102 +--
 .../PlannerTest/calcite_tpcds/tpcds-q07.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q08.test       | 102 +--
 .../PlannerTest/calcite_tpcds/tpcds-q09.test       | 282 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q10a.test      | 108 +--
 .../PlannerTest/calcite_tpcds/tpcds-q11.test       | 156 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q12.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q13.test       |  84 +--
 .../PlannerTest/calcite_tpcds/tpcds-q14a.test      | 747 +++++++++++----------
 .../PlannerTest/calcite_tpcds/tpcds-q14b.test      | 534 ++++++++-------
 .../PlannerTest/calcite_tpcds/tpcds-q15.test       |  51 +-
 .../PlannerTest/calcite_tpcds/tpcds-q16.test       | 138 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q17.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q18.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q19.test       |  84 +--
 .../PlannerTest/calcite_tpcds/tpcds-q20.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q21.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q22.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q23a.test      | 270 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q23b.test      | 294 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q24a.test      | 171 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q24b.test      | 171 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q25.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q26.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q27.test       |  60 +-
 .../PlannerTest/calcite_tpcds/tpcds-q28.test       | 126 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q29.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q30.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q31.test       | 234 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q32.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q33.test       | 225 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q34.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q35a.test      | 117 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q36.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q37.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q38.test       | 135 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q39a.test      |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q39b.test      |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q40.test       |  51 +-
 .../PlannerTest/calcite_tpcds/tpcds-q41.test       |  84 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q42.test       |  48 +-
 .../calcite_tpcds/tpcds-q43-verbose.test           |  18 +-
 .../PlannerTest/calcite_tpcds/tpcds-q43.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q44.test       | 108 +--
 .../PlannerTest/calcite_tpcds/tpcds-q45.test       |  84 +--
 .../PlannerTest/calcite_tpcds/tpcds-q46.test       |  93 +--
 .../PlannerTest/calcite_tpcds/tpcds-q47.test       | 144 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q48.test       |  72 +-
 .../PlannerTest/calcite_tpcds/tpcds-q49.test       | 144 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q50.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q51.test       |  66 +-
 .../PlannerTest/calcite_tpcds/tpcds-q52.test       |  48 +-
 .../PlannerTest/calcite_tpcds/tpcds-q53.test       |  66 +-
 .../PlannerTest/calcite_tpcds/tpcds-q54.test       | 174 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q55.test       |  48 +-
 .../PlannerTest/calcite_tpcds/tpcds-q56.test       | 225 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q57.test       | 144 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q58.test       | 207 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q59.test       | 114 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q60.test       | 225 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q61.test       | 183 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q62.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q63.test       |  66 +-
 .../PlannerTest/calcite_tpcds/tpcds-q64.test       | 480 ++++++-------
 .../PlannerTest/calcite_tpcds/tpcds-q65.test       |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q66.test       | 150 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q67.test       |  57 +-
 .../PlannerTest/calcite_tpcds/tpcds-q68.test       |  93 +--
 .../PlannerTest/calcite_tpcds/tpcds-q69.test       | 120 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q70.test       |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q71.test       | 123 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q72.test       | 111 +--
 .../PlannerTest/calcite_tpcds/tpcds-q73.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q74.test       | 156 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q75.test       | 288 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q76.test       | 135 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q77.test       | 210 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q78.test       |  81 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q79.test       |  75 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q80.test       | 207 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q81.test       | 102 +--
 .../PlannerTest/calcite_tpcds/tpcds-q82.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q83.test       | 171 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q84.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q85.test       | 108 +--
 .../PlannerTest/calcite_tpcds/tpcds-q86.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q87.test       | 135 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q88.test       | 456 +++++++------
 .../PlannerTest/calcite_tpcds/tpcds-q89.test       |  57 +-
 .../PlannerTest/calcite_tpcds/tpcds-q90.test       | 114 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q91.test       |  93 +--
 .../PlannerTest/calcite_tpcds/tpcds-q92.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q93.test       |  27 +-
 .../PlannerTest/calcite_tpcds/tpcds-q94.test       | 138 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q95.test       | 117 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q96.test       |  57 +-
 .../PlannerTest/calcite_tpcds/tpcds-q97.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q98.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q99.test       |  63 +-
 .../queries/QueryTest/hbo-multiple-scans.test      |  23 +
 .../queries/QueryTest/stats-extrapolation.test     | 109 ++-
 tests/hs2/test_hs2.py                              |   2 +-
 tests/query_test/test_hbo.py                       |  17 +-
 156 files changed, 7924 insertions(+), 6057 deletions(-)
 create mode 100644 be/src/util/uuid-util-test.cc
 create mode 100644 be/src/util/uuid-util.h
 copy fe/src/main/java/org/apache/impala/catalog/{FixedUdaCompatibility.java => UuidCompatibility.java} (70%)


(impala) 02/02: IMPALA-15019: Avoid materializing non-projected filtered partition column.

Posted by st...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 08c8cf9b7f39c0fb057b11dfcb5f8d07fcb0ea12
Author: Steve Carlin <sc...@cloudera.com>
AuthorDate: Mon Jul 6 13:06:36 2026 -0700

    IMPALA-15019: Avoid materializing non-projected filtered partition column.
    
    This commit is a small optimization to the Calcite planner that already
    exists in the original planner. For a query like:
    
    select id from functional_parquet.alltypes where year = 2010
    
    The year column is partitioned. Because of this, there is no reason to
    materialize the column in the scan node. The columns where year is not
    2010 are contained within the partitioned directory and are pruned out.
    Since the year column is not selected, it does not need to show up
    anywhere as the data is selected.
    
    To enable this, a "filterOnlyInputRefs" field was added to the context
    that is passed down through the RelNodes at physical creation time. On
    the Filter RelNode, it adds any input ref field in the filter condition
    that is not projected out through its parent Project RelNode.
    
    In order for this to work, it is worth mentioning that it relies on the
    fact that the only way a Project can exist between a Filter and a
    TableScan (i.e. the Filter-Project-TableScan hierarchy) is when the
    RelFieldTrimmer adds the Project that essentially "trims" the fields
    coming out of the scan immediately after the scan occurs. Any Project
    that manipulates fields will be on top of the Filter via the
    FilterProjectTranspose rule, so the Project underneath the Filter will
    only contain non-manipulated RexInputRefs as its project fields.
    
    IMPALA-14815 is a duplicate of this Jira, and some tests have been fixed
    in the stats-extrapolation.test file.
    
    Change-Id: I902dc625963321aff57e5c05af3d1137c06aa882
    Reviewed-on: http://gerrit.cloudera.org:8080/24558
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 .../impala/calcite/rel/node/ImpalaFilterRel.java   |   4 +
 .../impala/calcite/rel/node/ImpalaHdfsScanRel.java |  44 ++
 .../impala/calcite/rel/node/ImpalaProjectRel.java  |  50 +-
 .../calcite/rel/node/ParentPlanRelContext.java     |  27 +
 .../impala/calcite/service/CalciteOptimizer.java   |   7 +-
 .../PlannerTest/calcite_tpcds/tpcds-q01.test       |  81 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q02.test       | 150 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q03.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q04.test       | 234 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q05.test       | 210 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q06.test       | 102 +--
 .../PlannerTest/calcite_tpcds/tpcds-q07.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q08.test       | 102 +--
 .../PlannerTest/calcite_tpcds/tpcds-q09.test       | 282 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q10a.test      | 108 +--
 .../PlannerTest/calcite_tpcds/tpcds-q11.test       | 156 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q12.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q13.test       |  84 +--
 .../PlannerTest/calcite_tpcds/tpcds-q14a.test      | 747 +++++++++++----------
 .../PlannerTest/calcite_tpcds/tpcds-q14b.test      | 534 ++++++++-------
 .../PlannerTest/calcite_tpcds/tpcds-q15.test       |  51 +-
 .../PlannerTest/calcite_tpcds/tpcds-q16.test       | 138 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q17.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q18.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q19.test       |  84 +--
 .../PlannerTest/calcite_tpcds/tpcds-q20.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q21.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q22.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q23a.test      | 270 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q23b.test      | 294 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q24a.test      | 171 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q24b.test      | 171 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q25.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q26.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q27.test       |  60 +-
 .../PlannerTest/calcite_tpcds/tpcds-q28.test       | 126 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q29.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q30.test       | 105 +--
 .../PlannerTest/calcite_tpcds/tpcds-q31.test       | 234 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q32.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q33.test       | 225 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q34.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q35a.test      | 117 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q36.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q37.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q38.test       | 135 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q39a.test      |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q39b.test      |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q40.test       |  51 +-
 .../PlannerTest/calcite_tpcds/tpcds-q41.test       |  84 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q42.test       |  48 +-
 .../calcite_tpcds/tpcds-q43-verbose.test           |  18 +-
 .../PlannerTest/calcite_tpcds/tpcds-q43.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q44.test       | 108 +--
 .../PlannerTest/calcite_tpcds/tpcds-q45.test       |  84 +--
 .../PlannerTest/calcite_tpcds/tpcds-q46.test       |  93 +--
 .../PlannerTest/calcite_tpcds/tpcds-q47.test       | 144 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q48.test       |  72 +-
 .../PlannerTest/calcite_tpcds/tpcds-q49.test       | 144 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q50.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q51.test       |  66 +-
 .../PlannerTest/calcite_tpcds/tpcds-q52.test       |  48 +-
 .../PlannerTest/calcite_tpcds/tpcds-q53.test       |  66 +-
 .../PlannerTest/calcite_tpcds/tpcds-q54.test       | 174 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q55.test       |  48 +-
 .../PlannerTest/calcite_tpcds/tpcds-q56.test       | 225 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q57.test       | 144 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q58.test       | 207 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q59.test       | 114 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q60.test       | 225 ++++---
 .../PlannerTest/calcite_tpcds/tpcds-q61.test       | 183 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q62.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q63.test       |  66 +-
 .../PlannerTest/calcite_tpcds/tpcds-q64.test       | 480 ++++++-------
 .../PlannerTest/calcite_tpcds/tpcds-q65.test       |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q66.test       | 150 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q67.test       |  57 +-
 .../PlannerTest/calcite_tpcds/tpcds-q68.test       |  93 +--
 .../PlannerTest/calcite_tpcds/tpcds-q69.test       | 120 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q70.test       |  78 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q71.test       | 123 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q72.test       | 111 +--
 .../PlannerTest/calcite_tpcds/tpcds-q73.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q74.test       | 156 +++--
 .../PlannerTest/calcite_tpcds/tpcds-q75.test       | 288 ++++----
 .../PlannerTest/calcite_tpcds/tpcds-q76.test       | 135 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q77.test       | 210 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q78.test       |  81 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q79.test       |  75 ++-
 .../PlannerTest/calcite_tpcds/tpcds-q80.test       | 207 +++---
 .../PlannerTest/calcite_tpcds/tpcds-q81.test       | 102 +--
 .../PlannerTest/calcite_tpcds/tpcds-q82.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q83.test       | 171 ++---
 .../PlannerTest/calcite_tpcds/tpcds-q84.test       |  63 +-
 .../PlannerTest/calcite_tpcds/tpcds-q85.test       | 108 +--
 .../PlannerTest/calcite_tpcds/tpcds-q86.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q87.test       | 135 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q88.test       | 456 +++++++------
 .../PlannerTest/calcite_tpcds/tpcds-q89.test       |  57 +-
 .../PlannerTest/calcite_tpcds/tpcds-q90.test       | 114 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q91.test       |  93 +--
 .../PlannerTest/calcite_tpcds/tpcds-q92.test       |  69 +-
 .../PlannerTest/calcite_tpcds/tpcds-q93.test       |  27 +-
 .../PlannerTest/calcite_tpcds/tpcds-q94.test       | 138 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q95.test       | 117 ++--
 .../PlannerTest/calcite_tpcds/tpcds-q96.test       |  57 +-
 .../PlannerTest/calcite_tpcds/tpcds-q97.test       |  54 +-
 .../PlannerTest/calcite_tpcds/tpcds-q98.test       |  39 +-
 .../PlannerTest/calcite_tpcds/tpcds-q99.test       |  63 +-
 .../queries/QueryTest/hbo-multiple-scans.test      |  23 +
 .../queries/QueryTest/stats-extrapolation.test     | 109 ++-
 tests/query_test/test_hbo.py                       |  17 +-
 112 files changed, 7470 insertions(+), 6029 deletions(-)

diff --git a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaFilterRel.java b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaFilterRel.java
index a247ee17a..1a34e6770 100644
--- a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaFilterRel.java
+++ b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaFilterRel.java
@@ -87,6 +87,10 @@ public class ImpalaFilterRel extends Filter
       ImmutableBitSet inputRefs =
           RelOptUtil.InputFinder.bits(Lists.newArrayList(getCondition()), null);
       builder.setInputRefs(inputRefs.union(context.inputRefs_));
+      // Filter only fields is used for an optimization for partitioned fields in the
+      // scan node. This tracks the fields where an input ref in the filter condition
+      // is not projected out in a parent project.
+      builder.setFilterOnlyInputRefs(inputRefs.except(context.inputRefs_));
     }
     return relInput.getPlanNode(builder.build());
   }
diff --git a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaHdfsScanRel.java b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaHdfsScanRel.java
index 4222448ce..c7ffc2369 100644
--- a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaHdfsScanRel.java
+++ b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaHdfsScanRel.java
@@ -20,6 +20,7 @@ package org.apache.impala.calcite.rel.node;
 import com.google.common.base.Preconditions;
 
 import org.apache.calcite.rel.core.TableScan;
+import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.impala.analysis.Analyzer;
 import org.apache.impala.analysis.BaseTableRef;
 import org.apache.impala.analysis.Expr;
@@ -54,8 +55,10 @@ import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Optional;
+import java.util.Set;
 /**
  * ImpalaHdfsScanRel. Calcite RelNode which maps to an Impala TableScan node.
  */
@@ -95,6 +98,12 @@ public class ImpalaHdfsScanRel extends TableScan
     List<Expr> partitionConjuncts = pph.getPartitionedConjuncts();
     List<Expr> filterConjuncts = pph.getNonPartitionedConjuncts();
 
+    // mutator function that sets materialized value to false if the column
+    // is a clustered column that is only used in conjuncts that are in the
+    // partitionedConjuncts only.
+    unmaterializePartitionFilterColumns(partitionConjuncts, filterConjuncts,
+        context.filterOnlyInputRefs_, table);
+
     PlanNodeId nodeId = context.ctx_.getNextNodeId();
 
     // Under special conditions, a count star optimization can be applied, which
@@ -313,6 +322,41 @@ public class ImpalaHdfsScanRel extends TableScan
     return inputRefFieldNames;
   }
 
+  /**
+   * sets the materialization to false for all columns that are:
+   *   a) partitioned (clustered) columns
+   *   b) used only in a filter (where clause)
+   *   c) are not used in a filter conjunct that contains a non-clustered column.
+   */
+  private void unmaterializePartitionFilterColumns(
+      List<Expr> partitionedConjuncts, List<Expr> nonpartitionedConjuncts,
+      ImmutableBitSet filterOnlyInputRefs, CalciteTable table) {
+    Set<SlotRef> partitionedSlotRefs = new HashSet<>();
+    Set<SlotRef> nonpartitionedSlotRefs = new HashSet<>();
+    // collect all the SlotRefs for the partitioned conjuncts
+    // The SlotRefs in these conjuncts should only be partitioned columns.
+    partitionedConjuncts.stream()
+        .forEach(p -> p.collect(SlotRef.class, partitionedSlotRefs));
+    // collect all the SlotRefs for the nonpartitioned conjuncts
+    nonpartitionedConjuncts.stream()
+        .forEach(p -> p.collect(SlotRef.class, nonpartitionedSlotRefs));
+
+    for (SlotRef partitionedSlotRef : partitionedSlotRefs) {
+      // if the partitioned column is used in a filter clause that contains
+      // a non-partitioned column, it still needs to be materialized.
+      if (nonpartitionedSlotRefs.contains(partitionedSlotRef)) {
+        continue;
+      }
+      Column c = partitionedSlotRef.getDesc().getColumn();
+      Integer calcitePosition = table.getCalcitePosition(c.getPosition());
+      // The filterOnlyInputRefs bitset contains columns that are only used
+      // in the filter and not in the select clause.
+      if (filterOnlyInputRefs.get(calcitePosition)) {
+        partitionedSlotRef.getDesc().setIsMaterialized(false);
+      }
+    }
+  }
+
   @Override
   public RelNodeType relNodeType() {
     return RelNodeType.HDFSSCAN;
diff --git a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaProjectRel.java b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaProjectRel.java
index 8a5651707..de179500b 100644
--- a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaProjectRel.java
+++ b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaProjectRel.java
@@ -30,7 +30,9 @@ import org.apache.calcite.rel.core.Project;
 import org.apache.calcite.rel.core.Values;
 import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.rex.RexShuttle;
 import org.apache.calcite.sql.SqlKind;
+import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.impala.analysis.Analyzer;
 import org.apache.impala.analysis.Expr;
 import org.apache.impala.calcite.rel.util.CreateExprVisitor;
@@ -40,7 +42,6 @@ import org.apache.impala.planner.PlanNodeId;
 import java.util.ArrayList;
 import java.util.List;
 
-
 /**
  * ImpalaProjectRel is the Impala specific RelNode corresponding to
  * Project.
@@ -119,12 +120,34 @@ public class ImpalaProjectRel extends Project
     // Calcite rule. The only exception to this is when a bogus "coerced project"
     // (see comment in isCoercedProjectForValues method) is created after the
     // rule has been applied.
-    Preconditions.checkState(context.filterCondition_ == null,
-        "Failure, Filter RelNode needs to be passed through the Project Rel Node.");
     ImpalaPlanRel relInput = (ImpalaPlanRel) getInput(0);
     ParentPlanRelContext.Builder builder =
         new ParentPlanRelContext.Builder(context, this);
+
     builder.setInputRefs(RelOptUtil.InputFinder.bits(getProjects(), null));
+    if (context.filterCondition_ != null) {
+      builder.setFilterCondition(mapInputRefs(context.filterCondition_, getProjects()));
+
+      // Optimization for partitioned scan node columns that are not used in
+      // the output expression.
+      // If there is a filter condition present, all the projects
+      // should be RexInputRef instances. This is because RexCall projects are on
+      // top of the filter. The Project underneath the filter should only exist by
+      // creation of RelFieldTrimmer which trims the fields in between the scan
+      // RelNode and the Filter.
+      if (!context.filterOnlyInputRefs_.isEmpty()) {
+        // Map the input refs from the filter to the project. We need to do this for the
+        // following reason:
+        // Take the example "select id + 5 from alltypes where year = 2010". This will
+        // create Project-Filter-Project-Scan. The top project will have only the "id + 5"
+        // column. The lower project will have two columns, id and year. The scan node has
+        // the 13 columns in the table, where year is column 12. The lower project has
+        // two input refs, $1 and $12. The filter condition above this will have the
+        // condition "$1 = 2010", because the lower project only has 2 columns. So the
+        // map functions here change $1 to $12.
+        builder.setFilterOnlyInputRefs(mapFilterOnlyRefs(context.filterOnlyInputRefs_));
+      }
+    }
     return relInput.getPlanNode(builder.build());
   }
 
@@ -222,6 +245,27 @@ public class ImpalaProjectRel extends Project
         getCluster().getRexBuilder());
   }
 
+  // Map the input refs from a parent level to the input ref on this project
+  // level.
+  private RexNode mapInputRefs(RexNode filterCondition,
+      List<RexNode> projects) {
+    return filterCondition.accept(new RexShuttle() {
+        @Override public RexNode visitInputRef(RexInputRef inputRef) {
+          return projects.get(inputRef.getIndex());
+        }});
+  }
+
+  // Map the input refs from a parent level to the input ref on this project
+  // level.
+  private ImmutableBitSet mapFilterOnlyRefs(ImmutableBitSet filterOnlyInputRefs) {
+    ImmutableBitSet.Builder mappedRefsBuilder = ImmutableBitSet.builder();
+    for (Integer i : filterOnlyInputRefs) {
+      RexInputRef inputRef = (RexInputRef) getProjects().get(i);
+      mappedRefsBuilder.set(inputRef.getIndex());
+    }
+    return mappedRefsBuilder.build();
+  }
+
   @Override
   public RelNodeType relNodeType() {
     return RelNodeType.PROJECT;
diff --git a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ParentPlanRelContext.java b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ParentPlanRelContext.java
index 5788c8175..d13cb583e 100644
--- a/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ParentPlanRelContext.java
+++ b/java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ParentPlanRelContext.java
@@ -37,6 +37,17 @@ public class ParentPlanRelContext {
   // The input refs used by the parent PlanRel Node
   public final ImmutableBitSet inputRefs_;
 
+  // The input refs that are only used in a filter and are not used by a projection
+  // above the filter. This is for the partition pruning optimization. For the query
+  // "select id + 5 from alltypes where year = 2010", if the year column is partitioned,
+  // the partition pruning removes all files under the 2010 "year" directory on the
+  // file system. Since the "year" column is not in the "select" clause, there is no
+  // reason to create memory for the year column in the scan node.
+  // The variable filterOnlyInputRefs_ will contain the columns that apply for this
+  // optimization. This will be passed down to the scan node and the field will not
+  // be materialized.
+  public final ImmutableBitSet filterOnlyInputRefs_;
+
   public ImpalaAggRel parentAggregate_;
 
   /**
@@ -46,6 +57,7 @@ public class ParentPlanRelContext {
     this.ctx_ = plannerContext;
     this.filterCondition_ = null;
     this.inputRefs_ = null;
+    this.filterOnlyInputRefs_ = ImmutableBitSet.of();
     this.parentAggregate_ = null;
   }
 
@@ -53,6 +65,7 @@ public class ParentPlanRelContext {
     this.ctx_ = builder.context_;
     this.filterCondition_ = builder.filterCondition_;
     this.inputRefs_ = builder.inputRefs_;
+    this.filterOnlyInputRefs_ = builder.filterOnlyInputRefs_;
     this.parentAggregate_ = builder.parentAggregate_;
   }
 
@@ -60,6 +73,7 @@ public class ParentPlanRelContext {
     private PlannerContext context_;
     private RexNode filterCondition_;
     private ImmutableBitSet inputRefs_;
+    private ImmutableBitSet filterOnlyInputRefs_;
     private ImpalaAggRel parentAggregate_;
 
     /**
@@ -67,11 +81,13 @@ public class ParentPlanRelContext {
      */
     public Builder(PlannerContext plannerContext) {
       this.context_ = plannerContext;
+      this.filterOnlyInputRefs_ = ImmutableBitSet.of();
     }
 
     public Builder(ParentPlanRelContext planRelContext, ImpalaPlanRel planRel) {
       this.context_ = planRelContext.ctx_;
       this.filterCondition_ = planRelContext.filterCondition_;
+      this.filterOnlyInputRefs_ = planRelContext.filterOnlyInputRefs_;
       this.parentAggregate_ = ImpalaPlanRel.canPassThroughParentAggregate(planRel)
           ? planRelContext.parentAggregate_
           : null;
@@ -79,12 +95,23 @@ public class ParentPlanRelContext {
 
     public void setFilterCondition(RexNode filterCondition) {
       this.filterCondition_ = filterCondition;
+      if (filterCondition == null) {
+        // convenience setting. If there is no filter condition, the fields here
+        // can be cleared out.
+        // Note: if there is a filterCondition, it is up to the caller to set which
+        // input refs are filterOnlyInputRefs
+        this.filterOnlyInputRefs_ = ImmutableBitSet.of();
+      }
     }
 
     public void setInputRefs(ImmutableBitSet inputRefs) {
       this.inputRefs_ = inputRefs;
     }
 
+    public void setFilterOnlyInputRefs(ImmutableBitSet filterOnlyInputRefs) {
+      this.filterOnlyInputRefs_ = filterOnlyInputRefs;
+    }
+
     public void setParentAggregate(ImpalaAggRel parentAggregate) {
       this.parentAggregate_ = parentAggregate;
     }
diff --git a/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java b/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java
index e7edb5cbe..497c8f027 100644
--- a/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java
+++ b/java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalciteOptimizer.java
@@ -260,8 +260,8 @@ public class CalciteOptimizer implements CompilerStep {
    * RewriteRexOverRule: This rule changes analytic expressions similar to
    * the changes made in the "AnalyticExpr.rewrite" method
    *
-   * FILTER_PROJECT_TRANSPOSE: One last transpose is done since the physical
-   * conversion needs the Logical RelNodes ordered in this way.
+   * ProjectMerge: The RelFieldTrimmer adds some extra Projects that need
+   * to be merged.
    */
   private RelNode runPreImpalaConvertProgram(RelNode plan,
       ImpalaRexSimplify simplifier) throws ImpalaException {
@@ -272,8 +272,7 @@ public class CalciteOptimizer implements CompilerStep {
     builder.addMatchOrder(HepMatchOrder.BOTTOM_UP);
     builder.addRuleCollection(ImmutableList.of(
         ImpalaCoreRules.REWRITE_REX_OVER,
-        ImpalaCoreRules.PROJECT_MERGE,
-        ImpalaCoreRules.FILTER_PROJECT_TRANSPOSE
+        ImpalaCoreRules.PROJECT_MERGE
         ));
 
     return runProgram(retRelNode, builder.build(), simplifier);
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q01.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q01.test
index bfd3ac393..59bc423d0 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q01.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q01.test
@@ -31,34 +31,37 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaProjectRel(C_CUSTOMER_ID=[$1])
     ImpalaJoinRel(condition=[AND(=($3, $6), >($4, *($7, 1.2:DECIMAL(2, 1))))], joinType=[inner])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($3, $1)], joinType=[inner])
           ImpalaFilterRel(condition=[IS NOT NULL($2)])
             ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
               ImpalaProjectRel(CTR_CUSTOMER_SK=[$0], CTR_STORE_SK=[$1], sr_fee=[$2])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($19), IS NOT NULL($6), IS NOT NULL($2))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaProjectRel(s_store_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($24, _UTF-8'TN'), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaFilterRel(condition=[AND(=($1, _UTF-8'TN'), IS NOT NULL($0))])
+              ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
         ImpalaProjectRel(CTR_STORE_SK=[$1], CTR_TOTAL_RETURN=[$2])
           ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
             ImpalaProjectRel(CTR_CUSTOMER_SK=[$0], CTR_STORE_SK=[$1], sr_fee=[$2])
               ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($19))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($3))])
+                  ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=6.18GB mem-reservation=111.91MB thread-reservation=1 runtime-filters-memory=5.00MB
 |  max-parallelism=1 segment-costs=[977379059, 989786924, 43812422, 11059169531, 100]
@@ -224,34 +227,37 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaProjectRel(C_CUSTOMER_ID=[$1])
     ImpalaJoinRel(condition=[AND(=($3, $6), >($4, *($7, 1.2:DECIMAL(2, 1))))], joinType=[inner])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($3, $1)], joinType=[inner])
           ImpalaFilterRel(condition=[IS NOT NULL($2)])
             ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
               ImpalaProjectRel(CTR_CUSTOMER_SK=[$0], CTR_STORE_SK=[$1], sr_fee=[$2])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($19), IS NOT NULL($6), IS NOT NULL($2))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaProjectRel(s_store_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($24, _UTF-8'TN'), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaFilterRel(condition=[AND(=($1, _UTF-8'TN'), IS NOT NULL($0))])
+              ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
         ImpalaProjectRel(CTR_STORE_SK=[$1], CTR_TOTAL_RETURN=[$2])
           ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
             ImpalaProjectRel(CTR_CUSTOMER_SK=[$0], CTR_STORE_SK=[$1], sr_fee=[$2])
               ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($19))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($3))])
+                  ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F09:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.03MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[130] cpu-comparison-result=211 [max(1 (self) vs 211 (sum children))]
@@ -561,34 +567,37 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaProjectRel(C_CUSTOMER_ID=[$1])
     ImpalaJoinRel(condition=[AND(=($3, $6), >($4, *($7, 1.2:DECIMAL(2, 1))))], joinType=[inner])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($3, $1)], joinType=[inner])
           ImpalaFilterRel(condition=[IS NOT NULL($2)])
             ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
               ImpalaProjectRel(CTR_CUSTOMER_SK=[$0], CTR_STORE_SK=[$1], sr_fee=[$2])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($19), IS NOT NULL($6), IS NOT NULL($2))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaProjectRel(s_store_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($24, _UTF-8'TN'), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaFilterRel(condition=[AND(=($1, _UTF-8'TN'), IS NOT NULL($0))])
+              ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
         ImpalaProjectRel(CTR_STORE_SK=[$1], CTR_TOTAL_RETURN=[$2])
           ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
             ImpalaProjectRel(CTR_CUSTOMER_SK=[$0], CTR_STORE_SK=[$1], sr_fee=[$2])
               ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($19))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($3))])
+                  ImpalaProjectRel(sr_customer_sk=[$2], sr_store_sk=[$6], sr_fee=[$13], sr_returned_date_sk=[$19])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F09:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.03MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[130] cpu-comparison-result=211 [max(1 (self) vs 211 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q02.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q02.test
index ec56ba189..856d4b027 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q02.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q02.test
@@ -71,36 +71,42 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
             ImpalaProjectRel(D_WEEK_SEQ=[$3], $f1=[CASE(=($4, _UTF-8'Sunday'), $1, null:DECIMAL(7, 2))], $f2=[CASE(=($4, _UTF-8'Monday'), $1, null:DECIMAL(7, 2))], $f3=[CASE(=($4, _UTF-8'Tuesday'), $1, null:DECIMAL(7, 2))], $f4=[CASE(=($4, _UTF-8'Wednesday'), $1, null:DECIMAL(7, 2))], $f5=[CASE(=($4, _UTF-8'Thursday'), $1, null:DECIMAL(7, 2))], $f6=[CASE(=($4, _UTF-8'Friday'), $1, null:DECIMAL(7, 2))], $f7=[CASE(=($4, _UTF-8'Saturday'), $1, null:DECIMAL(7, 2))])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(d_week_seq=[$4])
-            ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($4))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(d_week_seq=[$0])
+            ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+              ImpalaProjectRel(d_week_seq=[$4], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaProjectRel(D_WEEK_SEQ=[$0], SUN_SALES=[$1], MON_SALES=[$2], TUE_SALES=[$3], WED_SALES=[$4], THU_SALES=[$5], FRI_SALES=[$6], SAT_SALES=[$7], D_WEEK_SEQ1=[CAST($0):BIGINT])
         ImpalaJoinRel(condition=[=($8, $0)], joinType=[inner])
           ImpalaAggRel(group=[{0}], SUN_SALES=[SUM($1)], MON_SALES=[SUM($2)], TUE_SALES=[SUM($3)], WED_SALES=[SUM($4)], THU_SALES=[SUM($5)], FRI_SALES=[SUM($6)], SAT_SALES=[SUM($7)])
             ImpalaProjectRel(D_WEEK_SEQ=[$3], $f1=[CASE(=($4, _UTF-8'Sunday'), $1, null:DECIMAL(7, 2))], $f2=[CASE(=($4, _UTF-8'Monday'), $1, null:DECIMAL(7, 2))], $f3=[CASE(=($4, _UTF-8'Tuesday'), $1, null:DECIMAL(7, 2))], $f4=[CASE(=($4, _UTF-8'Wednesday'), $1, null:DECIMAL(7, 2))], $f5=[CASE(=($4, _UTF-8'Thursday'), $1, null:DECIMAL(7, 2))], $f6=[CASE(=($4, _UTF-8'Friday'), $1, null:DECIMAL(7, 2))], $f7=[CASE(=($4, _UTF-8'Saturday'), $1, null:DECIMAL(7, 2))])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(d_week_seq=[$4])
-            ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($4))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(d_week_seq=[$0])
+            ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+              ImpalaProjectRel(d_week_seq=[$4], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=114.38MB mem-reservation=25.12MB thread-reservation=1 runtime-filters-memory=5.00MB
 |  max-parallelism=1 segment-costs=[8501768437, 8501768437, 62284, 20480]
@@ -294,36 +300,42 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
             ImpalaProjectRel(D_WEEK_SEQ=[$3], $f1=[CASE(=($4, _UTF-8'Sunday'), $1, null:DECIMAL(7, 2))], $f2=[CASE(=($4, _UTF-8'Monday'), $1, null:DECIMAL(7, 2))], $f3=[CASE(=($4, _UTF-8'Tuesday'), $1, null:DECIMAL(7, 2))], $f4=[CASE(=($4, _UTF-8'Wednesday'), $1, null:DECIMAL(7, 2))], $f5=[CASE(=($4, _UTF-8'Thursday'), $1, null:DECIMAL(7, 2))], $f6=[CASE(=($4, _UTF-8'Friday'), $1, null:DECIMAL(7, 2))], $f7=[CASE(=($4, _UTF-8'Saturday'), $1, null:DECIMAL(7, 2))])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(d_week_seq=[$4])
-            ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($4))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(d_week_seq=[$0])
+            ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+              ImpalaProjectRel(d_week_seq=[$4], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaProjectRel(D_WEEK_SEQ=[$0], SUN_SALES=[$1], MON_SALES=[$2], TUE_SALES=[$3], WED_SALES=[$4], THU_SALES=[$5], FRI_SALES=[$6], SAT_SALES=[$7], D_WEEK_SEQ1=[CAST($0):BIGINT])
         ImpalaJoinRel(condition=[=($8, $0)], joinType=[inner])
           ImpalaAggRel(group=[{0}], SUN_SALES=[SUM($1)], MON_SALES=[SUM($2)], TUE_SALES=[SUM($3)], WED_SALES=[SUM($4)], THU_SALES=[SUM($5)], FRI_SALES=[SUM($6)], SAT_SALES=[SUM($7)])
             ImpalaProjectRel(D_WEEK_SEQ=[$3], $f1=[CASE(=($4, _UTF-8'Sunday'), $1, null:DECIMAL(7, 2))], $f2=[CASE(=($4, _UTF-8'Monday'), $1, null:DECIMAL(7, 2))], $f3=[CASE(=($4, _UTF-8'Tuesday'), $1, null:DECIMAL(7, 2))], $f4=[CASE(=($4, _UTF-8'Wednesday'), $1, null:DECIMAL(7, 2))], $f5=[CASE(=($4, _UTF-8'Thursday'), $1, null:DECIMAL(7, 2))], $f6=[CASE(=($4, _UTF-8'Friday'), $1, null:DECIMAL(7, 2))], $f7=[CASE(=($4, _UTF-8'Saturday'), $1, null:DECIMAL(7, 2))])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(d_week_seq=[$4])
-            ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($4))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(d_week_seq=[$0])
+            ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+              ImpalaProjectRel(d_week_seq=[$4], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F12:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=6.32MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[22294] cpu-comparison-result=262 [max(1 (self) vs 262 (sum children))]
@@ -646,36 +658,42 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
             ImpalaProjectRel(D_WEEK_SEQ=[$3], $f1=[CASE(=($4, _UTF-8'Sunday'), $1, null:DECIMAL(7, 2))], $f2=[CASE(=($4, _UTF-8'Monday'), $1, null:DECIMAL(7, 2))], $f3=[CASE(=($4, _UTF-8'Tuesday'), $1, null:DECIMAL(7, 2))], $f4=[CASE(=($4, _UTF-8'Wednesday'), $1, null:DECIMAL(7, 2))], $f5=[CASE(=($4, _UTF-8'Thursday'), $1, null:DECIMAL(7, 2))], $f6=[CASE(=($4, _UTF-8'Friday'), $1, null:DECIMAL(7, 2))], $f7=[CASE(=($4, _UTF-8'Saturday'), $1, null:DECIMAL(7, 2))])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(d_week_seq=[$4])
-            ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($4))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(d_week_seq=[$0])
+            ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+              ImpalaProjectRel(d_week_seq=[$4], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaProjectRel(D_WEEK_SEQ=[$0], SUN_SALES=[$1], MON_SALES=[$2], TUE_SALES=[$3], WED_SALES=[$4], THU_SALES=[$5], FRI_SALES=[$6], SAT_SALES=[$7], D_WEEK_SEQ1=[CAST($0):BIGINT])
         ImpalaJoinRel(condition=[=($8, $0)], joinType=[inner])
           ImpalaAggRel(group=[{0}], SUN_SALES=[SUM($1)], MON_SALES=[SUM($2)], TUE_SALES=[SUM($3)], WED_SALES=[SUM($4)], THU_SALES=[SUM($5)], FRI_SALES=[SUM($6)], SAT_SALES=[SUM($7)])
             ImpalaProjectRel(D_WEEK_SEQ=[$3], $f1=[CASE(=($4, _UTF-8'Sunday'), $1, null:DECIMAL(7, 2))], $f2=[CASE(=($4, _UTF-8'Monday'), $1, null:DECIMAL(7, 2))], $f3=[CASE(=($4, _UTF-8'Tuesday'), $1, null:DECIMAL(7, 2))], $f4=[CASE(=($4, _UTF-8'Wednesday'), $1, null:DECIMAL(7, 2))], $f5=[CASE(=($4, _UTF-8'Thursday'), $1, null:DECIMAL(7, 2))], $f6=[CASE(=($4, _UTF-8'Friday'), $1, null:DECIMAL(7, 2))], $f7=[CASE(=($4, _UTF-8'Saturday'), $1, null:DECIMAL(7, 2))])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(SOLD_DATE_SK=[$33], SALES_PRICE=[$22])
-                    ImpalaFilterRel(condition=[IS NOT NULL($33)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(SOLD_DATE_SK=[$1], SALES_PRICE=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4], d_day_name=[$14])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(d_week_seq=[$4])
-            ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($4))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(d_week_seq=[$0])
+            ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+              ImpalaProjectRel(d_week_seq=[$4], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F12:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=6.32MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[22294] cpu-comparison-result=262 [max(1 (self) vs 262 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q03.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q03.test
index e3ce259f2..45a302214 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q03.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q03.test
@@ -29,15 +29,17 @@ ImpalaSortRel(sort0=[$0], sort1=[$3], sort2=[$1], dir0=[ASC], dir1=[DESC], dir2=
       ImpalaProjectRel(D_YEAR=[$4], BRAND=[$7], BRAND_ID=[$6], ss_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $2)], joinType=[inner])
-            ImpalaProjectRel(ss_item_sk=[$1], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+              ImpalaProjectRel(ss_item_sk=[$1], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
-              ImpalaFilterRel(condition=[AND(=($8, 11), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8])
-            ImpalaFilterRel(condition=[AND(=($13, 816), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+            ImpalaProjectRel(d_date_sk=[$0], d_year=[$1])
+              ImpalaFilterRel(condition=[AND(=($2, 11), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$1], i_brand=[$2])
+            ImpalaFilterRel(condition=[AND(=($3, 816), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=537.26MB mem-reservation=40.38MB thread-reservation=1 runtime-filters-memory=2.00MB
 |  max-parallelism=1 segment-costs=[3209066006, 111544107, 400]
@@ -123,15 +125,17 @@ ImpalaSortRel(sort0=[$0], sort1=[$3], sort2=[$1], dir0=[ASC], dir1=[DESC], dir2=
       ImpalaProjectRel(D_YEAR=[$4], BRAND=[$7], BRAND_ID=[$6], ss_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $2)], joinType=[inner])
-            ImpalaProjectRel(ss_item_sk=[$1], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+              ImpalaProjectRel(ss_item_sk=[$1], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
-              ImpalaFilterRel(condition=[AND(=($8, 11), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8])
-            ImpalaFilterRel(condition=[AND(=($13, 816), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+            ImpalaProjectRel(d_date_sk=[$0], d_year=[$1])
+              ImpalaFilterRel(condition=[AND(=($2, 11), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$1], i_brand=[$2])
+            ImpalaFilterRel(condition=[AND(=($3, 816), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F04:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.11MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[435] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
@@ -277,15 +281,17 @@ ImpalaSortRel(sort0=[$0], sort1=[$3], sort2=[$1], dir0=[ASC], dir1=[DESC], dir2=
       ImpalaProjectRel(D_YEAR=[$4], BRAND=[$7], BRAND_ID=[$6], ss_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $2)], joinType=[inner])
-            ImpalaProjectRel(ss_item_sk=[$1], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+              ImpalaProjectRel(ss_item_sk=[$1], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
-              ImpalaFilterRel(condition=[AND(=($8, 11), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8])
-            ImpalaFilterRel(condition=[AND(=($13, 816), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+            ImpalaProjectRel(d_date_sk=[$0], d_year=[$1])
+              ImpalaFilterRel(condition=[AND(=($2, 11), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$1], i_brand=[$2])
+            ImpalaFilterRel(condition=[AND(=($3, 816), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F04:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.11MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[435] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q04.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q04.test
index b2503b386..f78b13774 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q04.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q04.test
@@ -127,14 +127,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
             ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
               ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                  ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                    ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
       ImpalaJoinRel(condition=[=($0, $11)], joinType=[inner])
         ImpalaProjectRel(CUSTOMER_ID=[$0], CUSTOMER_FIRST_NAME=[$1], CUSTOMER_LAST_NAME=[$2], CUSTOMER_BIRTH_COUNTRY=[$4], YEAR_TOTAL=[$7])
@@ -143,14 +144,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                 ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
@@ -158,32 +160,34 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[/(+(-(-($12, $11), $9), $10), 2:DECIMAL(3, 0))])
                   ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                      ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
             ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
               ImpalaFilterRel(condition=[IS NOT NULL($7)])
                 ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                   ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[/(+(-(-($12, $11), $9), $10), 2:DECIMAL(3, 0))])
                     ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                          ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
               ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
                 ImpalaFilterRel(condition=[IS NOT NULL($7)])
@@ -191,14 +195,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                       ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
                 ImpalaFilterRel(condition=[>($7, 0.000000)])
@@ -206,14 +211,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                       ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=120.47GB mem-reservation=491.38MB thread-reservation=1 runtime-filters-memory=70.00MB
@@ -669,14 +675,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
             ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
               ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                  ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                    ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
       ImpalaJoinRel(condition=[=($0, $11)], joinType=[inner])
         ImpalaProjectRel(CUSTOMER_ID=[$0], CUSTOMER_FIRST_NAME=[$1], CUSTOMER_LAST_NAME=[$2], CUSTOMER_BIRTH_COUNTRY=[$4], YEAR_TOTAL=[$7])
@@ -685,14 +692,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                 ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
@@ -700,32 +708,34 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[/(+(-(-($12, $11), $9), $10), 2:DECIMAL(3, 0))])
                   ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                      ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
             ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
               ImpalaFilterRel(condition=[IS NOT NULL($7)])
                 ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                   ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[/(+(-(-($12, $11), $9), $10), 2:DECIMAL(3, 0))])
                     ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                          ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
               ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
                 ImpalaFilterRel(condition=[IS NOT NULL($7)])
@@ -733,14 +743,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                       ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
                 ImpalaFilterRel(condition=[>($7, 0.000000)])
@@ -748,14 +759,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                       ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.93MB mem-reservation=4.00MB thread-reservation=1
@@ -1667,14 +1679,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
             ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
               ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                  ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                    ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
       ImpalaJoinRel(condition=[=($0, $11)], joinType=[inner])
         ImpalaProjectRel(CUSTOMER_ID=[$0], CUSTOMER_FIRST_NAME=[$1], CUSTOMER_LAST_NAME=[$2], CUSTOMER_BIRTH_COUNTRY=[$4], YEAR_TOTAL=[$7])
@@ -1683,14 +1696,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                 ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
@@ -1698,32 +1712,34 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[/(+(-(-($12, $11), $9), $10), 2:DECIMAL(3, 0))])
                   ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                      ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
             ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
               ImpalaFilterRel(condition=[IS NOT NULL($7)])
                 ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                   ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[/(+(-(-($12, $11), $9), $10), 2:DECIMAL(3, 0))])
                     ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                          ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_sales_price=[$22], ws_ext_wholesale_cost=[$23], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
               ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
                 ImpalaFilterRel(condition=[IS NOT NULL($7)])
@@ -1731,14 +1747,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                       ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_ext_discount_amt=[$21], cs_ext_sales_price=[$22], cs_ext_wholesale_cost=[$23], cs_ext_list_price=[$24], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
                 ImpalaFilterRel(condition=[>($7, 0.000000)])
@@ -1746,14 +1763,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(CUSTOMER_ID=[$8], CUSTOMER_FIRST_NAME=[$9], CUSTOMER_LAST_NAME=[$10], CUSTOMER_PREFERRED_CUST_FLAG=[$11], CUSTOMER_BIRTH_COUNTRY=[$12], CUSTOMER_LOGIN=[$13], CUSTOMER_EMAIL_ADDRESS=[$14], $f8=[/(+(-(-($4, $3), $1), $2), 2:DECIMAL(3, 0))])
                       ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($5, $6)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($5))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.93MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q05.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q05.test
index 32f9a2c67..7a2cab661 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q05.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q05.test
@@ -140,17 +140,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                   ImpalaUnionRel(all=[true])
-                    ImpalaProjectRel(STORE_SK=[$6], DATE_SK=[$22], SALES_PRICE=[$14], PROFIT=[$21], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(STORE_SK=[$6], DATE_SK=[$19], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$10], NET_LOSS=[$18])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($19), IS NOT NULL($6))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
+                    ImpalaProjectRel(STORE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                    ImpalaProjectRel(STORE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$1], NET_LOSS=[$2])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(sr_store_sk=[$6], sr_return_amt=[$10], sr_net_loss=[$18], sr_returned_date_sk=[$19])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaProjectRel(CHANNEL=[_UTF-8'catalog channel':VARCHAR(2147483647) CHARACTER SET "UTF-8"], ID=[||(_UTF-8'catalog_page':VARCHAR(2147483647) CHARACTER SET "UTF-8", $0)], SALES=[$1], returns=[$3], PROFIT=[-($2, $4)])
           ImpalaAggRel(group=[{0}], SALES=[SUM($1)], PROFIT=[SUM($2)], returns=[SUM($3)], PROFIT_LOSS=[SUM($4)])
@@ -158,17 +161,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                   ImpalaUnionRel(all=[true])
-                    ImpalaProjectRel(PAGE_SK=[$11], DATE_SK=[$33], SALES_PRICE=[$22], PROFIT=[$32], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($11))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                    ImpalaProjectRel(PAGE_SK=[$11], DATE_SK=[$26], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$17], NET_LOSS=[$25])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($26), IS NOT NULL($11))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
+                    ImpalaProjectRel(PAGE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(cs_catalog_page_sk=[$11], cs_ext_sales_price=[$22], cs_net_profit=[$32], cs_sold_date_sk=[$33])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                    ImpalaProjectRel(PAGE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$1], NET_LOSS=[$2])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(cr_catalog_page_sk=[$11], cr_return_amount=[$17], cr_net_loss=[$25], cr_returned_date_sk=[$26])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(cp_catalog_page_sk=[$0], cp_catalog_page_id=[$1])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(cp_catalog_page_sk=[$0], cp_catalog_page_id=[$1])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_page]])
       ImpalaProjectRel(CHANNEL=[_UTF-8'web channel':VARCHAR(2147483647) CHARACTER SET "UTF-8"], ID=[||(_UTF-8'web_site':VARCHAR(2147483647) CHARACTER SET "UTF-8", $0)], SALES=[$1], returns=[$3], PROFIT=[-($2, $4)])
         ImpalaAggRel(group=[{0}], SALES=[SUM($1)], PROFIT=[SUM($2)], returns=[SUM($3)], PROFIT_LOSS=[SUM($4)])
@@ -176,22 +182,24 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
             ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
               ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(WSR_WEB_SITE_SK=[$12], DATE_SK=[$33], SALES_PRICE=[$22], PROFIT=[$32], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($12))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(WSR_WEB_SITE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_web_site_sk=[$12], ws_ext_sales_price=[$22], ws_net_profit=[$32], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                   ImpalaProjectRel(WSR_WEB_SITE_SK=[$1], DATE_SK=[$7], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$5], NET_LOSS=[$6])
                     ImpalaJoinRel(condition=[AND(=($3, $0), =($4, $2))], joinType=[inner])
-                      ImpalaProjectRel(ws_item_sk=[$2], ws_web_site_sk=[$12], ws_order_number=[$16])
-                        ImpalaFilterRel(condition=[IS NOT NULL($12)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                        ImpalaProjectRel(ws_item_sk=[$2], ws_web_site_sk=[$12], ws_order_number=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                      ImpalaProjectRel(wr_item_sk=[$1], wr_order_number=[$12], wr_return_amt=[$14], wr_net_loss=[$22], wr_returned_date_sk=[$23])
-                        ImpalaFilterRel(condition=[IS NOT NULL($23)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($4)])
+                        ImpalaProjectRel(wr_item_sk=[$1], wr_order_number=[$12], wr_return_amt=[$14], wr_net_loss=[$22], wr_returned_date_sk=[$23])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(web_site_sk=[$0], web_site_id=[$1])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(web_site_sk=[$0], web_site_id=[$1])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_site]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=10.74GB mem-reservation=75.34MB thread-reservation=1 runtime-filters-memory=23.00MB
@@ -519,17 +527,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                   ImpalaUnionRel(all=[true])
-                    ImpalaProjectRel(STORE_SK=[$6], DATE_SK=[$22], SALES_PRICE=[$14], PROFIT=[$21], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(STORE_SK=[$6], DATE_SK=[$19], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$10], NET_LOSS=[$18])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($19), IS NOT NULL($6))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
+                    ImpalaProjectRel(STORE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                    ImpalaProjectRel(STORE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$1], NET_LOSS=[$2])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(sr_store_sk=[$6], sr_return_amt=[$10], sr_net_loss=[$18], sr_returned_date_sk=[$19])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaProjectRel(CHANNEL=[_UTF-8'catalog channel':VARCHAR(2147483647) CHARACTER SET "UTF-8"], ID=[||(_UTF-8'catalog_page':VARCHAR(2147483647) CHARACTER SET "UTF-8", $0)], SALES=[$1], returns=[$3], PROFIT=[-($2, $4)])
           ImpalaAggRel(group=[{0}], SALES=[SUM($1)], PROFIT=[SUM($2)], returns=[SUM($3)], PROFIT_LOSS=[SUM($4)])
@@ -537,17 +548,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                   ImpalaUnionRel(all=[true])
-                    ImpalaProjectRel(PAGE_SK=[$11], DATE_SK=[$33], SALES_PRICE=[$22], PROFIT=[$32], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($11))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                    ImpalaProjectRel(PAGE_SK=[$11], DATE_SK=[$26], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$17], NET_LOSS=[$25])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($26), IS NOT NULL($11))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
+                    ImpalaProjectRel(PAGE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(cs_catalog_page_sk=[$11], cs_ext_sales_price=[$22], cs_net_profit=[$32], cs_sold_date_sk=[$33])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                    ImpalaProjectRel(PAGE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$1], NET_LOSS=[$2])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(cr_catalog_page_sk=[$11], cr_return_amount=[$17], cr_net_loss=[$25], cr_returned_date_sk=[$26])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(cp_catalog_page_sk=[$0], cp_catalog_page_id=[$1])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(cp_catalog_page_sk=[$0], cp_catalog_page_id=[$1])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_page]])
       ImpalaProjectRel(CHANNEL=[_UTF-8'web channel':VARCHAR(2147483647) CHARACTER SET "UTF-8"], ID=[||(_UTF-8'web_site':VARCHAR(2147483647) CHARACTER SET "UTF-8", $0)], SALES=[$1], returns=[$3], PROFIT=[-($2, $4)])
         ImpalaAggRel(group=[{0}], SALES=[SUM($1)], PROFIT=[SUM($2)], returns=[SUM($3)], PROFIT_LOSS=[SUM($4)])
@@ -555,22 +569,24 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
             ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
               ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(WSR_WEB_SITE_SK=[$12], DATE_SK=[$33], SALES_PRICE=[$22], PROFIT=[$32], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($12))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(WSR_WEB_SITE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_web_site_sk=[$12], ws_ext_sales_price=[$22], ws_net_profit=[$32], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                   ImpalaProjectRel(WSR_WEB_SITE_SK=[$1], DATE_SK=[$7], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$5], NET_LOSS=[$6])
                     ImpalaJoinRel(condition=[AND(=($3, $0), =($4, $2))], joinType=[inner])
-                      ImpalaProjectRel(ws_item_sk=[$2], ws_web_site_sk=[$12], ws_order_number=[$16])
-                        ImpalaFilterRel(condition=[IS NOT NULL($12)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                        ImpalaProjectRel(ws_item_sk=[$2], ws_web_site_sk=[$12], ws_order_number=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                      ImpalaProjectRel(wr_item_sk=[$1], wr_order_number=[$12], wr_return_amt=[$14], wr_net_loss=[$22], wr_returned_date_sk=[$23])
-                        ImpalaFilterRel(condition=[IS NOT NULL($23)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($4)])
+                        ImpalaProjectRel(wr_item_sk=[$1], wr_order_number=[$12], wr_return_amt=[$14], wr_net_loss=[$22], wr_returned_date_sk=[$23])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(web_site_sk=[$0], web_site_id=[$1])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(web_site_sk=[$0], web_site_id=[$1])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_site]])
 F23:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
@@ -1107,17 +1123,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                   ImpalaUnionRel(all=[true])
-                    ImpalaProjectRel(STORE_SK=[$6], DATE_SK=[$22], SALES_PRICE=[$14], PROFIT=[$21], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(STORE_SK=[$6], DATE_SK=[$19], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$10], NET_LOSS=[$18])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($19), IS NOT NULL($6))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
+                    ImpalaProjectRel(STORE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                    ImpalaProjectRel(STORE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$1], NET_LOSS=[$2])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(sr_store_sk=[$6], sr_return_amt=[$10], sr_net_loss=[$18], sr_returned_date_sk=[$19])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaProjectRel(CHANNEL=[_UTF-8'catalog channel':VARCHAR(2147483647) CHARACTER SET "UTF-8"], ID=[||(_UTF-8'catalog_page':VARCHAR(2147483647) CHARACTER SET "UTF-8", $0)], SALES=[$1], returns=[$3], PROFIT=[-($2, $4)])
           ImpalaAggRel(group=[{0}], SALES=[SUM($1)], PROFIT=[SUM($2)], returns=[SUM($3)], PROFIT_LOSS=[SUM($4)])
@@ -1125,17 +1144,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                   ImpalaUnionRel(all=[true])
-                    ImpalaProjectRel(PAGE_SK=[$11], DATE_SK=[$33], SALES_PRICE=[$22], PROFIT=[$32], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($11))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                    ImpalaProjectRel(PAGE_SK=[$11], DATE_SK=[$26], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$17], NET_LOSS=[$25])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($26), IS NOT NULL($11))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
+                    ImpalaProjectRel(PAGE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(cs_catalog_page_sk=[$11], cs_ext_sales_price=[$22], cs_net_profit=[$32], cs_sold_date_sk=[$33])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
+                    ImpalaProjectRel(PAGE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$1], NET_LOSS=[$2])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                        ImpalaProjectRel(cr_catalog_page_sk=[$11], cr_return_amount=[$17], cr_net_loss=[$25], cr_returned_date_sk=[$26])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(cp_catalog_page_sk=[$0], cp_catalog_page_id=[$1])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(cp_catalog_page_sk=[$0], cp_catalog_page_id=[$1])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_page]])
       ImpalaProjectRel(CHANNEL=[_UTF-8'web channel':VARCHAR(2147483647) CHARACTER SET "UTF-8"], ID=[||(_UTF-8'web_site':VARCHAR(2147483647) CHARACTER SET "UTF-8", $0)], SALES=[$1], returns=[$3], PROFIT=[-($2, $4)])
         ImpalaAggRel(group=[{0}], SALES=[SUM($1)], PROFIT=[SUM($2)], returns=[SUM($3)], PROFIT_LOSS=[SUM($4)])
@@ -1143,22 +1165,24 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
             ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
               ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                 ImpalaUnionRel(all=[true])
-                  ImpalaProjectRel(WSR_WEB_SITE_SK=[$12], DATE_SK=[$33], SALES_PRICE=[$22], PROFIT=[$32], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($12))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
+                  ImpalaProjectRel(WSR_WEB_SITE_SK=[$0], DATE_SK=[$3], SALES_PRICE=[$1], PROFIT=[$2], RETURN_AMT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], NET_LOSS=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_web_site_sk=[$12], ws_ext_sales_price=[$22], ws_net_profit=[$32], ws_sold_date_sk=[$33])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                   ImpalaProjectRel(WSR_WEB_SITE_SK=[$1], DATE_SK=[$7], SALES_PRICE=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], PROFIT=[CAST(0.00:DECIMAL(7, 2)):DECIMAL(7, 2)], RETURN_AMT=[$5], NET_LOSS=[$6])
                     ImpalaJoinRel(condition=[AND(=($3, $0), =($4, $2))], joinType=[inner])
-                      ImpalaProjectRel(ws_item_sk=[$2], ws_web_site_sk=[$12], ws_order_number=[$16])
-                        ImpalaFilterRel(condition=[IS NOT NULL($12)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                        ImpalaProjectRel(ws_item_sk=[$2], ws_web_site_sk=[$12], ws_order_number=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                      ImpalaProjectRel(wr_item_sk=[$1], wr_order_number=[$12], wr_return_amt=[$14], wr_net_loss=[$22], wr_returned_date_sk=[$23])
-                        ImpalaFilterRel(condition=[IS NOT NULL($23)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($4)])
+                        ImpalaProjectRel(wr_item_sk=[$1], wr_order_number=[$12], wr_return_amt=[$14], wr_net_loss=[$22], wr_returned_date_sk=[$23])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(web_site_sk=[$0], web_site_id=[$1])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-08-19:DATE..2000-09-02:DATE]]:DATE), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(web_site_sk=[$0], web_site_id=[$1])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_site]])
 F23:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q06.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q06.test
index bed95d266..e42d78bcc 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q06.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q06.test
@@ -33,34 +33,36 @@ ImpalaSortRel(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
         ImpalaJoinRel(condition=[=($2, $12)], joinType=[inner])
           ImpalaJoinRel(condition=[=($10, $1)], joinType=[inner])
             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($0))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaJoinRel(condition=[AND(=($2, $3), >($1, *(1.2:DECIMAL(2, 1), $4)))], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_category=[$12])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($12), IS NOT NULL($5))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($1))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_category=[$12])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaAggRel(group=[{0}], EXPR$0=[AVG($1)])
-                  ImpalaProjectRel(i_category=[$12], i_current_price=[$5])
-                    ImpalaFilterRel(condition=[IS NOT NULL($12)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                  ImpalaProjectRel(i_category=[$1], i_current_price=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(i_current_price=[$5], i_category=[$12])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-              ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-              ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-            ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
                 ImpalaAggRel(group=[{0}])
-                  ImpalaProjectRel(D_MONTH_SEQ=[$3])
-                    ImpalaFilterRel(condition=[AND(=($6, 2002), =($8, 3))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaProjectRel(D_MONTH_SEQ=[$0])
+                    ImpalaFilterRel(condition=[AND(=($1, 2002), =($2, 3))])
+                      ImpalaProjectRel(d_month_seq=[$3], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=2.86GB mem-reservation=145.44MB thread-reservation=1 runtime-filters-memory=36.00MB
 |  max-parallelism=1 segment-costs=[166538, 17041, 0, 2996694588, 6, 10]
@@ -251,34 +253,36 @@ ImpalaSortRel(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
         ImpalaJoinRel(condition=[=($2, $12)], joinType=[inner])
           ImpalaJoinRel(condition=[=($10, $1)], joinType=[inner])
             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($0))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaJoinRel(condition=[AND(=($2, $3), >($1, *(1.2:DECIMAL(2, 1), $4)))], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_category=[$12])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($12), IS NOT NULL($5))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($1))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_category=[$12])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaAggRel(group=[{0}], EXPR$0=[AVG($1)])
-                  ImpalaProjectRel(i_category=[$12], i_current_price=[$5])
-                    ImpalaFilterRel(condition=[IS NOT NULL($12)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                  ImpalaProjectRel(i_category=[$1], i_current_price=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(i_current_price=[$5], i_category=[$12])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-              ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-              ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-            ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
                 ImpalaAggRel(group=[{0}])
-                  ImpalaProjectRel(D_MONTH_SEQ=[$3])
-                    ImpalaFilterRel(condition=[AND(=($6, 2002), =($8, 3))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaProjectRel(D_MONTH_SEQ=[$0])
+                    ImpalaFilterRel(condition=[AND(=($1, 2002), =($2, 3))])
+                      ImpalaProjectRel(d_month_seq=[$3], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F12:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[11] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
@@ -647,34 +651,36 @@ ImpalaSortRel(sort0=[$1], sort1=[$0], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
         ImpalaJoinRel(condition=[=($2, $12)], joinType=[inner])
           ImpalaJoinRel(condition=[=($10, $1)], joinType=[inner])
             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($0))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaJoinRel(condition=[AND(=($2, $3), >($1, *(1.2:DECIMAL(2, 1), $4)))], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_category=[$12])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($12), IS NOT NULL($5))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($1))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_category=[$12])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaAggRel(group=[{0}], EXPR$0=[AVG($1)])
-                  ImpalaProjectRel(i_category=[$12], i_current_price=[$5])
-                    ImpalaFilterRel(condition=[IS NOT NULL($12)])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                  ImpalaProjectRel(i_category=[$1], i_current_price=[$0])
+                    ImpalaFilterRel(condition=[IS NOT NULL($1)])
+                      ImpalaProjectRel(i_current_price=[$5], i_category=[$12])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-              ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-              ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-            ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
                 ImpalaAggRel(group=[{0}])
-                  ImpalaProjectRel(D_MONTH_SEQ=[$3])
-                    ImpalaFilterRel(condition=[AND(=($6, 2002), =($8, 3))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaProjectRel(D_MONTH_SEQ=[$0])
+                    ImpalaFilterRel(condition=[AND(=($1, 2002), =($2, 3))])
+                      ImpalaProjectRel(d_month_seq=[$3], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F12:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[11] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q07.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q07.test
index 6c8a907ae..0dad4e471 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q07.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q07.test
@@ -27,24 +27,27 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaAggRel(group=[{0}], AGG1=[AVG($4)], AGG2=[AVG($1)], AGG3=[AVG($2)], AGG4=[AVG($3)])
     ImpalaProjectRel(I_ITEM_ID=[$1], ss_list_price=[$6], ss_coupon_amt=[$8], ss_sales_price=[$7], cast_ss_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($7, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($1, $8)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_promo_sk=[$7], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($7))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($7), IS NOT NULL($0), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_promo_sk=[$7], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'W'), =($3, _UTF-8'College'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(p_promo_sk=[$0])
-              ImpalaFilterRel(condition=[AND(OR(=($9, _UTF-8'N'), =($14, _UTF-8'N')), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
+              ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'N'), =($2, _UTF-8'N')), IS NOT NULL($0))])
+                ImpalaProjectRel(p_promo_sk=[$0], p_channel_email=[$9], p_channel_event=[$14])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($6, 2001), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($1, 2001), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=130.38MB mem-reservation=67.88MB thread-reservation=1 runtime-filters-memory=4.00MB
 |  max-parallelism=1 segment-costs=[1214520044, 1831104, 500]
@@ -168,24 +171,27 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaAggRel(group=[{0}], AGG1=[AVG($4)], AGG2=[AVG($1)], AGG3=[AVG($2)], AGG4=[AVG($3)])
     ImpalaProjectRel(I_ITEM_ID=[$1], ss_list_price=[$6], ss_coupon_amt=[$8], ss_sales_price=[$7], cast_ss_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($7, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($1, $8)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_promo_sk=[$7], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($7))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($7), IS NOT NULL($0), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_promo_sk=[$7], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'W'), =($3, _UTF-8'College'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(p_promo_sk=[$0])
-              ImpalaFilterRel(condition=[AND(OR(=($9, _UTF-8'N'), =($14, _UTF-8'N')), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
+              ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'N'), =($2, _UTF-8'N')), IS NOT NULL($0))])
+                ImpalaProjectRel(p_promo_sk=[$0], p_channel_email=[$9], p_channel_event=[$14])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($6, 2001), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($1, 2001), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[537] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
@@ -403,24 +409,27 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaAggRel(group=[{0}], AGG1=[AVG($4)], AGG2=[AVG($1)], AGG3=[AVG($2)], AGG4=[AVG($3)])
     ImpalaProjectRel(I_ITEM_ID=[$1], ss_list_price=[$6], ss_coupon_amt=[$8], ss_sales_price=[$7], cast_ss_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($7, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($1, $8)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_promo_sk=[$7], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($7))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($7), IS NOT NULL($0), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_promo_sk=[$7], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'W'), =($3, _UTF-8'College'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(p_promo_sk=[$0])
-              ImpalaFilterRel(condition=[AND(OR(=($9, _UTF-8'N'), =($14, _UTF-8'N')), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
+              ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'N'), =($2, _UTF-8'N')), IS NOT NULL($0))])
+                ImpalaProjectRel(p_promo_sk=[$0], p_channel_email=[$9], p_channel_event=[$14])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($6, 2001), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($1, 2001), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[537] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q08.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q08.test
index 807d80845..cc963d315 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q08.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q08.test
@@ -115,17 +115,19 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(S_STORE_NAME=[$5], ss_net_profit=[$1])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(ss_store_sk=[$6], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+            ImpalaProjectRel(ss_store_sk=[$6], ss_net_profit=[$21], ss_sold_date_sk=[$22])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], $f3=[SUBSTR($25, 1:BIGINT, 2:BIGINT)])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR($25, 1:BIGINT, 2:BIGINT)))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], $f3=[SUBSTR($2, 1:BIGINT, 2:BIGINT)])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR($2, 1:BIGINT, 2:BIGINT)))])
+                ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_zip=[$25])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
             ImpalaProjectRel($f1=[SUBSTR($0, 1:BIGINT, 2:BIGINT)])
               ImpalaFilterRel(condition=[=($1, 2)])
                 ImpalaAggRel(group=[{0}], agg#0=[COUNT()])
@@ -133,9 +135,10 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(CA_ZIP=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ca_zip=[$9], $f1=[SUBSTR($9, 1:BIGINT, 5:BIGINT)])
-                            ImpalaFilterRel(condition=[AND(SEARCH(SUBSTR($9, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'10298':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10374':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10425':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11340':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11489':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11618':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11652':VARCHAR(2147483647) CHARACTER SET [...]
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                          ImpalaProjectRel(ca_zip=[$0], $f1=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
+                            ImpalaFilterRel(condition=[AND(SEARCH(SUBSTR($0, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'10298':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10374':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10425':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11340':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11489':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11618':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11652':VARCHAR(2147483647) CHARACTER SET [...]
+                              ImpalaProjectRel(ca_zip=[$9])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                           ImpalaValuesRel(tuples=[[{ _UTF-8'47602' }, { _UTF-8'16704' }, { _UTF-8'35863' }, { _UTF-8'28577' }, { _UTF-8'83910' }, { _UTF-8'36201' }, { _UTF-8'58412' }, { _UTF-8'48162' }, { _UTF-8'28055' }, { _UTF-8'41419' }, { _UTF-8'80332' }, { _UTF-8'38607' }, { _UTF-8'77817' }, { _UTF-8'24891' }, { _UTF-8'16226' }, { _UTF-8'18410' }, { _UTF-8'21231' }, { _UTF-8'59345' }, { _UTF-8'13918' }, { _UTF-8'51089' }, { _UTF-8'20317' }, { _UTF-8'17167' }, { _UTF-8'54585' }, { _U [...]
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(CA_ZIP=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
@@ -143,12 +146,13 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
                           ImpalaAggRel(group=[{0}], CNT=[COUNT()])
                             ImpalaProjectRel(ca_zip=[$1])
                               ImpalaJoinRel(condition=[=($0, $2)], joinType=[inner])
-                                ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
-                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR(SUBSTR($9, 1:BIGINT, 5:BIGINT), 1:BIGINT, 2:BIGINT)))])
+                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR(SUBSTR($1, 1:BIGINT, 5:BIGINT), 1:BIGINT, 2:BIGINT)))])
+                                  ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                                ImpalaProjectRel(c_current_addr_sk=[$4])
-                                  ImpalaFilterRel(condition=[AND(=($10, _UTF-8'Y'), IS NOT NULL($4))])
-                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
+                                ImpalaProjectRel(c_current_addr_sk=[$0])
+                                  ImpalaFilterRel(condition=[AND(=($1, _UTF-8'Y'), IS NOT NULL($0))])
+                                    ImpalaProjectRel(c_current_addr_sk=[$4], c_preferred_cust_flag=[$10])
+                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=176.92MB mem-reservation=48.77MB thread-reservation=1 runtime-filters-memory=5.00MB
 |  max-parallelism=1 segment-costs=[3466717, 10622426, 2948, 32441, 803624130, 18, 20]
@@ -334,17 +338,19 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(S_STORE_NAME=[$5], ss_net_profit=[$1])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(ss_store_sk=[$6], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+            ImpalaProjectRel(ss_store_sk=[$6], ss_net_profit=[$21], ss_sold_date_sk=[$22])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], $f3=[SUBSTR($25, 1:BIGINT, 2:BIGINT)])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR($25, 1:BIGINT, 2:BIGINT)))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], $f3=[SUBSTR($2, 1:BIGINT, 2:BIGINT)])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR($2, 1:BIGINT, 2:BIGINT)))])
+                ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_zip=[$25])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
             ImpalaProjectRel($f1=[SUBSTR($0, 1:BIGINT, 2:BIGINT)])
               ImpalaFilterRel(condition=[=($1, 2)])
                 ImpalaAggRel(group=[{0}], agg#0=[COUNT()])
@@ -352,9 +358,10 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(CA_ZIP=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ca_zip=[$9], $f1=[SUBSTR($9, 1:BIGINT, 5:BIGINT)])
-                            ImpalaFilterRel(condition=[AND(SEARCH(SUBSTR($9, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'10298':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10374':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10425':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11340':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11489':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11618':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11652':VARCHAR(2147483647) CHARACTER SET [...]
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                          ImpalaProjectRel(ca_zip=[$0], $f1=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
+                            ImpalaFilterRel(condition=[AND(SEARCH(SUBSTR($0, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'10298':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10374':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10425':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11340':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11489':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11618':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11652':VARCHAR(2147483647) CHARACTER SET [...]
+                              ImpalaProjectRel(ca_zip=[$9])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                           ImpalaValuesRel(tuples=[[{ _UTF-8'47602' }, { _UTF-8'16704' }, { _UTF-8'35863' }, { _UTF-8'28577' }, { _UTF-8'83910' }, { _UTF-8'36201' }, { _UTF-8'58412' }, { _UTF-8'48162' }, { _UTF-8'28055' }, { _UTF-8'41419' }, { _UTF-8'80332' }, { _UTF-8'38607' }, { _UTF-8'77817' }, { _UTF-8'24891' }, { _UTF-8'16226' }, { _UTF-8'18410' }, { _UTF-8'21231' }, { _UTF-8'59345' }, { _UTF-8'13918' }, { _UTF-8'51089' }, { _UTF-8'20317' }, { _UTF-8'17167' }, { _UTF-8'54585' }, { _U [...]
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(CA_ZIP=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
@@ -362,12 +369,13 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
                           ImpalaAggRel(group=[{0}], CNT=[COUNT()])
                             ImpalaProjectRel(ca_zip=[$1])
                               ImpalaJoinRel(condition=[=($0, $2)], joinType=[inner])
-                                ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
-                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR(SUBSTR($9, 1:BIGINT, 5:BIGINT), 1:BIGINT, 2:BIGINT)))])
+                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR(SUBSTR($1, 1:BIGINT, 5:BIGINT), 1:BIGINT, 2:BIGINT)))])
+                                  ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                                ImpalaProjectRel(c_current_addr_sk=[$4])
-                                  ImpalaFilterRel(condition=[AND(=($10, _UTF-8'Y'), IS NOT NULL($4))])
-                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
+                                ImpalaProjectRel(c_current_addr_sk=[$0])
+                                  ImpalaFilterRel(condition=[AND(=($1, _UTF-8'Y'), IS NOT NULL($0))])
+                                    ImpalaProjectRel(c_current_addr_sk=[$4], c_preferred_cust_flag=[$10])
+                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F14:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[23] cpu-comparison-result=90 [max(1 (self) vs 90 (sum children))]
@@ -732,17 +740,19 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(S_STORE_NAME=[$5], ss_net_profit=[$1])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(ss_store_sk=[$6], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+            ImpalaProjectRel(ss_store_sk=[$6], ss_net_profit=[$21], ss_sold_date_sk=[$22])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], $f3=[SUBSTR($25, 1:BIGINT, 2:BIGINT)])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR($25, 1:BIGINT, 2:BIGINT)))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], $f3=[SUBSTR($2, 1:BIGINT, 2:BIGINT)])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR($2, 1:BIGINT, 2:BIGINT)))])
+                ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_zip=[$25])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
             ImpalaProjectRel($f1=[SUBSTR($0, 1:BIGINT, 2:BIGINT)])
               ImpalaFilterRel(condition=[=($1, 2)])
                 ImpalaAggRel(group=[{0}], agg#0=[COUNT()])
@@ -750,9 +760,10 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(CA_ZIP=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ca_zip=[$9], $f1=[SUBSTR($9, 1:BIGINT, 5:BIGINT)])
-                            ImpalaFilterRel(condition=[AND(SEARCH(SUBSTR($9, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'10298':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10374':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10425':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11340':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11489':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11618':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11652':VARCHAR(2147483647) CHARACTER SET [...]
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                          ImpalaProjectRel(ca_zip=[$0], $f1=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
+                            ImpalaFilterRel(condition=[AND(SEARCH(SUBSTR($0, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'10298':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10374':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'10425':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11340':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11489':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11618':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'11652':VARCHAR(2147483647) CHARACTER SET [...]
+                              ImpalaProjectRel(ca_zip=[$9])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                           ImpalaValuesRel(tuples=[[{ _UTF-8'47602' }, { _UTF-8'16704' }, { _UTF-8'35863' }, { _UTF-8'28577' }, { _UTF-8'83910' }, { _UTF-8'36201' }, { _UTF-8'58412' }, { _UTF-8'48162' }, { _UTF-8'28055' }, { _UTF-8'41419' }, { _UTF-8'80332' }, { _UTF-8'38607' }, { _UTF-8'77817' }, { _UTF-8'24891' }, { _UTF-8'16226' }, { _UTF-8'18410' }, { _UTF-8'21231' }, { _UTF-8'59345' }, { _UTF-8'13918' }, { _UTF-8'51089' }, { _UTF-8'20317' }, { _UTF-8'17167' }, { _UTF-8'54585' }, { _U [...]
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(CA_ZIP=[SUBSTR($0, 1:BIGINT, 5:BIGINT)])
@@ -760,12 +771,13 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
                           ImpalaAggRel(group=[{0}], CNT=[COUNT()])
                             ImpalaProjectRel(ca_zip=[$1])
                               ImpalaJoinRel(condition=[=($0, $2)], joinType=[inner])
-                                ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
-                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR(SUBSTR($9, 1:BIGINT, 5:BIGINT), 1:BIGINT, 2:BIGINT)))])
+                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL(SUBSTR(SUBSTR($1, 1:BIGINT, 5:BIGINT), 1:BIGINT, 2:BIGINT)))])
+                                  ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                                ImpalaProjectRel(c_current_addr_sk=[$4])
-                                  ImpalaFilterRel(condition=[AND(=($10, _UTF-8'Y'), IS NOT NULL($4))])
-                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
+                                ImpalaProjectRel(c_current_addr_sk=[$0])
+                                  ImpalaFilterRel(condition=[AND(=($1, _UTF-8'Y'), IS NOT NULL($0))])
+                                    ImpalaProjectRel(c_current_addr_sk=[$4], c_preferred_cust_flag=[$10])
+                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F14:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[23] cpu-comparison-result=90 [max(1 (self) vs 90 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q09.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q09.test
index f39e04fac..1c09d3d35 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q09.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q09.test
@@ -71,68 +71,78 @@ ImpalaProjectRel(BUCKET1=[CASE(>($0, 2972190), $1, $2)], BUCKET2=[CASE(>($3, 111
                               ImpalaProjectRel(EXPR$0=[$0])
                                 ImpalaJoinRel(condition=[true], joinType=[right])
                                   ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                                    ImpalaProjectRel(ss_quantity=[$9])
-                                      ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
+                                    ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                      ImpalaProjectRel(ss_quantity=[$9])
                                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                                  ImpalaProjectRel(r_reason_sk=[$0])
-                                    ImpalaFilterRel(condition=[=($0, 1)])
+                                  ImpalaFilterRel(condition=[=($0, 1)])
+                                    ImpalaProjectRel(r_reason_sk=[$0])
                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, reason]])
                               ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                                ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                                  ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
-                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                                ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                                  ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                    ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                              ImpalaProjectRel(ss_net_profit=[$21])
-                                ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
-                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                              ImpalaProjectRel(ss_net_profit=[$1])
+                                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                  ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                            ImpalaProjectRel(ss_quantity=[$9])
-                              ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
+                            ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                              ImpalaProjectRel(ss_quantity=[$9])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                          ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                            ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                          ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                            ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                              ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                        ImpalaProjectRel(ss_net_profit=[$21])
-                          ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                        ImpalaProjectRel(ss_net_profit=[$1])
+                          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                      ImpalaProjectRel(ss_quantity=[$9])
-                        ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
+                      ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                        ImpalaProjectRel(ss_quantity=[$9])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                    ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                      ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                    ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                      ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                  ImpalaProjectRel(ss_net_profit=[$21])
-                    ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                  ImpalaProjectRel(ss_net_profit=[$1])
+                    ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                      ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                ImpalaProjectRel(ss_quantity=[$9])
-                  ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
+                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                  ImpalaProjectRel(ss_quantity=[$9])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
             ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-              ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+              ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                  ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-            ImpalaProjectRel(ss_net_profit=[$21])
-              ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+            ImpalaProjectRel(ss_net_profit=[$1])
+              ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
         ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-          ImpalaProjectRel(ss_quantity=[$9])
-            ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
+          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+            ImpalaProjectRel(ss_quantity=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
       ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-        ImpalaProjectRel(ss_ext_discount_amt=[$13])
-          ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+        ImpalaProjectRel(ss_ext_discount_amt=[$1])
+          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+            ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
     ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-      ImpalaProjectRel(ss_net_profit=[$21])
-        ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
-          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+      ImpalaProjectRel(ss_net_profit=[$1])
+        ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+          ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=256.23MB mem-reservation=100.01MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1043704170, 1541364438, 1541364438, 1043704170, 1541364438, 1541364438, 1043704170, 1541364438, 1541364438, 1043704170, 1541364438, 1541364438, 1043704170, 1541364438, 1541364438, 10]
@@ -548,68 +558,78 @@ ImpalaProjectRel(BUCKET1=[CASE(>($0, 2972190), $1, $2)], BUCKET2=[CASE(>($3, 111
                               ImpalaProjectRel(EXPR$0=[$0])
                                 ImpalaJoinRel(condition=[true], joinType=[right])
                                   ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                                    ImpalaProjectRel(ss_quantity=[$9])
-                                      ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
+                                    ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                      ImpalaProjectRel(ss_quantity=[$9])
                                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                                  ImpalaProjectRel(r_reason_sk=[$0])
-                                    ImpalaFilterRel(condition=[=($0, 1)])
+                                  ImpalaFilterRel(condition=[=($0, 1)])
+                                    ImpalaProjectRel(r_reason_sk=[$0])
                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, reason]])
                               ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                                ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                                  ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
-                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                                ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                                  ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                    ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                              ImpalaProjectRel(ss_net_profit=[$21])
-                                ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
-                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                              ImpalaProjectRel(ss_net_profit=[$1])
+                                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                  ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                            ImpalaProjectRel(ss_quantity=[$9])
-                              ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
+                            ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                              ImpalaProjectRel(ss_quantity=[$9])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                          ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                            ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                          ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                            ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                              ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                        ImpalaProjectRel(ss_net_profit=[$21])
-                          ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                        ImpalaProjectRel(ss_net_profit=[$1])
+                          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                      ImpalaProjectRel(ss_quantity=[$9])
-                        ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
+                      ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                        ImpalaProjectRel(ss_quantity=[$9])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                    ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                      ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                    ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                      ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                  ImpalaProjectRel(ss_net_profit=[$21])
-                    ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                  ImpalaProjectRel(ss_net_profit=[$1])
+                    ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                      ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                ImpalaProjectRel(ss_quantity=[$9])
-                  ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
+                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                  ImpalaProjectRel(ss_quantity=[$9])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
             ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-              ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+              ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                  ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-            ImpalaProjectRel(ss_net_profit=[$21])
-              ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+            ImpalaProjectRel(ss_net_profit=[$1])
+              ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
         ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-          ImpalaProjectRel(ss_quantity=[$9])
-            ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
+          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+            ImpalaProjectRel(ss_quantity=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
       ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-        ImpalaProjectRel(ss_ext_discount_amt=[$13])
-          ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+        ImpalaProjectRel(ss_ext_discount_amt=[$1])
+          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+            ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
     ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-      ImpalaProjectRel(ss_net_profit=[$21])
-        ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
-          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+      ImpalaProjectRel(ss_net_profit=[$1])
+        ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+          ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[6] cpu-comparison-result=1750 [max(2 (self) vs 1750 (sum children))]
@@ -1483,68 +1503,78 @@ ImpalaProjectRel(BUCKET1=[CASE(>($0, 2972190), $1, $2)], BUCKET2=[CASE(>($3, 111
                               ImpalaProjectRel(EXPR$0=[$0])
                                 ImpalaJoinRel(condition=[true], joinType=[right])
                                   ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                                    ImpalaProjectRel(ss_quantity=[$9])
-                                      ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
+                                    ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                      ImpalaProjectRel(ss_quantity=[$9])
                                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                                  ImpalaProjectRel(r_reason_sk=[$0])
-                                    ImpalaFilterRel(condition=[=($0, 1)])
+                                  ImpalaFilterRel(condition=[=($0, 1)])
+                                    ImpalaProjectRel(r_reason_sk=[$0])
                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, reason]])
                               ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                                ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                                  ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
-                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                                ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                                  ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                    ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                              ImpalaProjectRel(ss_net_profit=[$21])
-                                ImpalaFilterRel(condition=[SEARCH($9, Sarg[[1..20]])])
-                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                              ImpalaProjectRel(ss_net_profit=[$1])
+                                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[1..20]])])
+                                  ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                            ImpalaProjectRel(ss_quantity=[$9])
-                              ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
+                            ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                              ImpalaProjectRel(ss_quantity=[$9])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                          ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                            ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                          ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                            ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                              ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                        ImpalaProjectRel(ss_net_profit=[$21])
-                          ImpalaFilterRel(condition=[SEARCH($9, Sarg[[21..40]])])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                        ImpalaProjectRel(ss_net_profit=[$1])
+                          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[21..40]])])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                      ImpalaProjectRel(ss_quantity=[$9])
-                        ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
+                      ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                        ImpalaProjectRel(ss_quantity=[$9])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                    ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                      ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                    ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                      ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-                  ImpalaProjectRel(ss_net_profit=[$21])
-                    ImpalaFilterRel(condition=[SEARCH($9, Sarg[[41..60]])])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                  ImpalaProjectRel(ss_net_profit=[$1])
+                    ImpalaFilterRel(condition=[SEARCH($0, Sarg[[41..60]])])
+                      ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-                ImpalaProjectRel(ss_quantity=[$9])
-                  ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
+                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                  ImpalaProjectRel(ss_quantity=[$9])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
             ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-              ImpalaProjectRel(ss_ext_discount_amt=[$13])
-                ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+              ImpalaProjectRel(ss_ext_discount_amt=[$1])
+                ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                  ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-            ImpalaProjectRel(ss_net_profit=[$21])
-              ImpalaFilterRel(condition=[SEARCH($9, Sarg[[61..80]])])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+            ImpalaProjectRel(ss_net_profit=[$1])
+              ImpalaFilterRel(condition=[SEARCH($0, Sarg[[61..80]])])
+                ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
         ImpalaAggRel(group=[{}], EXPR$0=[COUNT()])
-          ImpalaProjectRel(ss_quantity=[$9])
-            ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
+          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+            ImpalaProjectRel(ss_quantity=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
       ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-        ImpalaProjectRel(ss_ext_discount_amt=[$13])
-          ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+        ImpalaProjectRel(ss_ext_discount_amt=[$1])
+          ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+            ImpalaProjectRel(ss_quantity=[$9], ss_ext_discount_amt=[$13])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
     ImpalaAggRel(group=[{}], EXPR$0=[AVG($0)])
-      ImpalaProjectRel(ss_net_profit=[$21])
-        ImpalaFilterRel(condition=[SEARCH($9, Sarg[[81..100]])])
-          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+      ImpalaProjectRel(ss_net_profit=[$1])
+        ImpalaFilterRel(condition=[SEARCH($0, Sarg[[81..100]])])
+          ImpalaProjectRel(ss_quantity=[$9], ss_net_profit=[$21])
+            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[6] cpu-comparison-result=1750 [max(2 (self) vs 1750 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q10a.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q10a.test
index 4ced9fbf2..9b12c1ff5 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q10a.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q10a.test
@@ -75,36 +75,40 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$4], sort4=[$6], sort5=
                 ImpalaAggRel(group=[{0}])
                   ImpalaProjectRel(ss_customer_sk=[$0])
                     ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($0))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                   ImpalaProjectRel(ca_address_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($7, Sarg[_UTF-8'Allen County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Dakota County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Lamar County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Park County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Allen County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Dakota County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Lamar County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Park County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
           ImpalaUnionRel(all=[true])
             ImpalaProjectRel(CUSTOMER_SK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaProjectRel(CUSTOMER_SK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=608.42MB mem-reservation=61.69MB thread-reservation=1 runtime-filters-memory=7.00MB
 |  max-parallelism=1 segment-costs=[533873820, 386885184, 826780, 1400]
@@ -329,36 +333,40 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$4], sort4=[$6], sort5=
                 ImpalaAggRel(group=[{0}])
                   ImpalaProjectRel(ss_customer_sk=[$0])
                     ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($0))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                   ImpalaProjectRel(ca_address_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($7, Sarg[_UTF-8'Allen County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Dakota County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Lamar County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Park County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Allen County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Dakota County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Lamar County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Park County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
           ImpalaUnionRel(all=[true])
             ImpalaProjectRel(CUSTOMER_SK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaProjectRel(CUSTOMER_SK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F13:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.09MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1443] cpu-comparison-result=180 [max(1 (self) vs 180 (sum children))]
@@ -753,36 +761,40 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$4], sort4=[$6], sort5=
                 ImpalaAggRel(group=[{0}])
                   ImpalaProjectRel(ss_customer_sk=[$0])
                     ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($0))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                   ImpalaProjectRel(ca_address_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($7, Sarg[_UTF-8'Allen County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Dakota County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Lamar County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Park County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Allen County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Dakota County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Lamar County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Park County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
           ImpalaUnionRel(all=[true])
             ImpalaProjectRel(CUSTOMER_SK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaProjectRel(CUSTOMER_SK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2001), SEARCH($8, Sarg[[4..7]]), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2001), SEARCH($2, Sarg[[4..7]]), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F13:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.09MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1443] cpu-comparison-result=180 [max(1 (self) vs 180 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q11.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q11.test
index 1ba864ddd..4c9fcee1d 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q11.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q11.test
@@ -90,30 +90,32 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
         ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
           ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[-($10, $9)])
             ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-              ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
         ImpalaProjectRel(CUSTOMER_ID=[$0], CUSTOMER_FIRST_NAME=[$1], CUSTOMER_LAST_NAME=[$2], CUSTOMER_LOGIN=[$5], YEAR_TOTAL=[$7])
           ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
             ImpalaProjectRel(CUSTOMER_ID=[$6], CUSTOMER_FIRST_NAME=[$7], CUSTOMER_LAST_NAME=[$8], CUSTOMER_PREFERRED_CUST_FLAG=[$9], CUSTOMER_BIRTH_COUNTRY=[$10], CUSTOMER_LOGIN=[$11], CUSTOMER_EMAIL_ADDRESS=[$12], $f8=[-($2, $1)])
               ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                    ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
@@ -121,30 +123,32 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[-($10, $9)])
                   ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                      ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
             ImpalaFilterRel(condition=[>($7, 0.00)])
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$6], CUSTOMER_FIRST_NAME=[$7], CUSTOMER_LAST_NAME=[$8], CUSTOMER_PREFERRED_CUST_FLAG=[$9], CUSTOMER_BIRTH_COUNTRY=[$10], CUSTOMER_LOGIN=[$11], CUSTOMER_EMAIL_ADDRESS=[$12], $f8=[-($2, $1)])
                   ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=53.01GB mem-reservation=381.00MB thread-reservation=1 runtime-filters-memory=100.00MB
@@ -450,30 +454,32 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
         ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
           ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[-($10, $9)])
             ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-              ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
         ImpalaProjectRel(CUSTOMER_ID=[$0], CUSTOMER_FIRST_NAME=[$1], CUSTOMER_LAST_NAME=[$2], CUSTOMER_LOGIN=[$5], YEAR_TOTAL=[$7])
           ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
             ImpalaProjectRel(CUSTOMER_ID=[$6], CUSTOMER_FIRST_NAME=[$7], CUSTOMER_LAST_NAME=[$8], CUSTOMER_PREFERRED_CUST_FLAG=[$9], CUSTOMER_BIRTH_COUNTRY=[$10], CUSTOMER_LOGIN=[$11], CUSTOMER_EMAIL_ADDRESS=[$12], $f8=[-($2, $1)])
               ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                    ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
@@ -481,30 +487,32 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[-($10, $9)])
                   ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                      ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
             ImpalaFilterRel(condition=[>($7, 0.00)])
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$6], CUSTOMER_FIRST_NAME=[$7], CUSTOMER_LAST_NAME=[$8], CUSTOMER_PREFERRED_CUST_FLAG=[$9], CUSTOMER_BIRTH_COUNTRY=[$10], CUSTOMER_LOGIN=[$11], CUSTOMER_EMAIL_ADDRESS=[$12], $f8=[-($2, $1)])
                   ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F21:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.38MB mem-reservation=4.00MB thread-reservation=1
@@ -1114,30 +1122,32 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
         ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
           ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[-($10, $9)])
             ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-              ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
         ImpalaProjectRel(CUSTOMER_ID=[$0], CUSTOMER_FIRST_NAME=[$1], CUSTOMER_LAST_NAME=[$2], CUSTOMER_LOGIN=[$5], YEAR_TOTAL=[$7])
           ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
             ImpalaProjectRel(CUSTOMER_ID=[$6], CUSTOMER_FIRST_NAME=[$7], CUSTOMER_LAST_NAME=[$8], CUSTOMER_PREFERRED_CUST_FLAG=[$9], CUSTOMER_BIRTH_COUNTRY=[$10], CUSTOMER_LOGIN=[$11], CUSTOMER_EMAIL_ADDRESS=[$12], $f8=[-($2, $1)])
               ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                    ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
@@ -1145,30 +1155,32 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$1], CUSTOMER_FIRST_NAME=[$2], CUSTOMER_LAST_NAME=[$3], CUSTOMER_PREFERRED_CUST_FLAG=[$4], CUSTOMER_BIRTH_COUNTRY=[$5], CUSTOMER_LOGIN=[$6], CUSTOMER_EMAIL_ADDRESS=[$7], $f8=[-($10, $9)])
                   ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                      ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                        ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_ext_discount_amt=[$21], ws_ext_list_price=[$24], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaProjectRel(CUSTOMER_ID=[$0], YEAR_TOTAL=[$7])
             ImpalaFilterRel(condition=[>($7, 0.00)])
               ImpalaAggRel(group=[{0, 1, 2, 3, 4, 5, 6}], YEAR_TOTAL=[SUM($7)])
                 ImpalaProjectRel(CUSTOMER_ID=[$6], CUSTOMER_FIRST_NAME=[$7], CUSTOMER_LAST_NAME=[$8], CUSTOMER_PREFERRED_CUST_FLAG=[$9], CUSTOMER_BIRTH_COUNTRY=[$10], CUSTOMER_LOGIN=[$11], CUSTOMER_EMAIL_ADDRESS=[$12], $f8=[-($2, $1)])
                   ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_ext_discount_amt=[$13], ss_ext_list_price=[$16], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_country=[$14], c_login=[$15], c_email_address=[$16])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F21:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.38MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q12.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q12.test
index 65729f5b4..b8d26c3c1 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q12.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q12.test
@@ -42,14 +42,15 @@ ImpalaSortRel(sort0=[$2], sort1=[$3], sort2=[$0], sort3=[$1], sort4=[$6], dir0=[
       ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CATEGORY=[$9], I_CLASS=[$8], I_CURRENT_PRICE=[$7], ws_ext_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(ws_item_sk=[$2], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(ws_item_sk=[$2], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-03-28:DATE..1998-04-27:DATE]]:DATE), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
-            ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Children':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Men':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-03-28:DATE..1998-04-27:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Children':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Men':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=8.47GB mem-reservation=76.06MB thread-reservation=1 runtime-filters-memory=2.00MB
@@ -150,14 +151,15 @@ ImpalaSortRel(sort0=[$2], sort1=[$3], sort2=[$0], sort3=[$1], sort4=[$6], dir0=[
       ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CATEGORY=[$9], I_CLASS=[$8], I_CURRENT_PRICE=[$7], ws_ext_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(ws_item_sk=[$2], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(ws_item_sk=[$2], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-03-28:DATE..1998-04-27:DATE]]:DATE), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
-            ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Children':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Men':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-03-28:DATE..1998-04-27:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Children':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Men':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F05:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.22MB mem-reservation=4.00MB thread-reservation=1
@@ -326,14 +328,15 @@ ImpalaSortRel(sort0=[$2], sort1=[$3], sort2=[$0], sort3=[$1], sort4=[$6], dir0=[
       ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CATEGORY=[$9], I_CLASS=[$8], I_CURRENT_PRICE=[$7], ws_ext_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(ws_item_sk=[$2], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(ws_item_sk=[$2], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-03-28:DATE..1998-04-27:DATE]]:DATE), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
-            ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Children':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Men':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-03-28:DATE..1998-04-27:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Children':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Men':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F05:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.22MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q13.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q13.test
index 600540b8f..c989a47b0 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q13.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q13.test
@@ -56,27 +56,29 @@ Per-Host Resource Estimates: Memory=280MB
 ImpalaAggRel(group=[{}], EXPR$0=[AVG($2)], EXPR$1=[AVG($0)], EXPR$2=[AVG($1)], EXPR$3=[SUM($1)])
   ImpalaProjectRel(ss_ext_sales_price=[$11], ss_ext_wholesale_cost=[$12], cast_ss_quantity=[CAST($9):BIGINT])
     ImpalaJoinRel(condition=[AND(OR(SEARCH($1, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($18, 1)), OR(=($1, _UTF-8'U'), =($2, _UTF-8'2 yr Degree'), =($18, 1)), OR(=($1, _UTF-8'U'), >=($10, 50.00:DECIMAL(4, 2)), =($18, 1)), OR(=($1, _UTF-8'U'), <=($10, 100.00:DECIMAL(5, 2)), =($18, 1)), OR(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR( [...]
-      ImpalaProjectRel(cd_demo_sk=[$0], cd_marital_status=[$2], cd_education_status=[$3])
-        ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), OR(SEARCH($2, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($3, _UTF-8'College')), OR(SEARCH($2, Sarg[_UTF-8'S':VARCHAR(214 [...]
+      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), OR(SEARCH($1, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($2, _UTF-8'College')), OR(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(21474 [...]
+        ImpalaProjectRel(cd_demo_sk=[$0], cd_marital_status=[$2], cd_education_status=[$3])
           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
       ImpalaJoinRel(condition=[AND(=($4, $0), OR(SEARCH($1, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), >=($10, 50.00)), OR(SEARCH($1, Sarg[_UTF-8'GA':VARCHAR(2147 [...]
-        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-          ImpalaFilterRel(condition=[AND(=($10, _UTF-8'United States'), SEARCH($8, Sarg[_UTF-8'CA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NE':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OK':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483 [...]
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$1])
+          ImpalaFilterRel(condition=[AND(=($2, _UTF-8'United States'), SEARCH($1, Sarg[_UTF-8'CA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NE':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OK':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(21474836 [...]
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_country=[$10])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
         ImpalaJoinRel(condition=[AND(=($1, $12), OR(>=($5, 100.00:DECIMAL(5, 2)), >=($5, 50.00:DECIMAL(4, 2)), =($13, 1)), OR(>=($5, 100.00:DECIMAL(5, 2)), <=($5, 100.00:DECIMAL(5, 2)), =($13, 1)), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1), >=($5, 150.00:DECIMAL(5, 2))), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1), <=($5, 200.00:DECIMAL(5, 2))), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1)), OR(<=($5, 150.00:DECIMAL(5, 2)), >=($5, 50.00:DECIMAL(4, 2)), =($13, 1)), OR(<=($5, 150.00:DECIMAL( [...]
           ImpalaJoinRel(condition=[=($9, $11)], joinType=[inner])
             ImpalaJoinRel(condition=[=($10, $3)], joinType=[inner])
-              ImpalaProjectRel(ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_quantity=[$9], ss_sales_price=[$12], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[[50.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]; NULL AS FALSE]:DECIMAL(5, 2)), SEARCH($21, Sarg[[50.00:DECIMAL(7, 2)..300.00:DECIMAL(7, 2)]; NULL AS FALSE]:DECIMAL(7, 2)), IS NOT NULL($6), IS NOT NULL($3), IS NOT NULL($4), IS NOT NULL($5), IS NOT NULL($22))])
+              ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[50.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]; NULL AS FALSE]:DECIMAL(5, 2)), SEARCH($8, Sarg[[50.00:DECIMAL(7, 2)..300.00:DECIMAL(7, 2)]; NULL AS FALSE]:DECIMAL(7, 2)), IS NOT NULL($3), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($9))])
+                ImpalaProjectRel(ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_quantity=[$9], ss_sales_price=[$12], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-              ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(s_store_sk=[$0])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($6, 2001), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(hd_demo_sk=[$0], hd_dep_count=[$3])
-            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[1, 3]), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(=($1, 2001), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[1, 3]), IS NOT NULL($0))])
+            ImpalaProjectRel(hd_demo_sk=[$0], hd_dep_count=[$3])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=279.72MB mem-reservation=65.02MB thread-reservation=1 runtime-filters-memory=6.00MB
@@ -219,27 +221,29 @@ Per-Host Resource Estimates: Memory=986MB
 ImpalaAggRel(group=[{}], EXPR$0=[AVG($2)], EXPR$1=[AVG($0)], EXPR$2=[AVG($1)], EXPR$3=[SUM($1)])
   ImpalaProjectRel(ss_ext_sales_price=[$11], ss_ext_wholesale_cost=[$12], cast_ss_quantity=[CAST($9):BIGINT])
     ImpalaJoinRel(condition=[AND(OR(SEARCH($1, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($18, 1)), OR(=($1, _UTF-8'U'), =($2, _UTF-8'2 yr Degree'), =($18, 1)), OR(=($1, _UTF-8'U'), >=($10, 50.00:DECIMAL(4, 2)), =($18, 1)), OR(=($1, _UTF-8'U'), <=($10, 100.00:DECIMAL(5, 2)), =($18, 1)), OR(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR( [...]
-      ImpalaProjectRel(cd_demo_sk=[$0], cd_marital_status=[$2], cd_education_status=[$3])
-        ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), OR(SEARCH($2, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($3, _UTF-8'College')), OR(SEARCH($2, Sarg[_UTF-8'S':VARCHAR(214 [...]
+      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), OR(SEARCH($1, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($2, _UTF-8'College')), OR(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(21474 [...]
+        ImpalaProjectRel(cd_demo_sk=[$0], cd_marital_status=[$2], cd_education_status=[$3])
           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
       ImpalaJoinRel(condition=[AND(=($4, $0), OR(SEARCH($1, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), >=($10, 50.00)), OR(SEARCH($1, Sarg[_UTF-8'GA':VARCHAR(2147 [...]
-        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-          ImpalaFilterRel(condition=[AND(=($10, _UTF-8'United States'), SEARCH($8, Sarg[_UTF-8'CA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NE':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OK':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483 [...]
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$1])
+          ImpalaFilterRel(condition=[AND(=($2, _UTF-8'United States'), SEARCH($1, Sarg[_UTF-8'CA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NE':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OK':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(21474836 [...]
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_country=[$10])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
         ImpalaJoinRel(condition=[AND(=($1, $12), OR(>=($5, 100.00:DECIMAL(5, 2)), >=($5, 50.00:DECIMAL(4, 2)), =($13, 1)), OR(>=($5, 100.00:DECIMAL(5, 2)), <=($5, 100.00:DECIMAL(5, 2)), =($13, 1)), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1), >=($5, 150.00:DECIMAL(5, 2))), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1), <=($5, 200.00:DECIMAL(5, 2))), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1)), OR(<=($5, 150.00:DECIMAL(5, 2)), >=($5, 50.00:DECIMAL(4, 2)), =($13, 1)), OR(<=($5, 150.00:DECIMAL( [...]
           ImpalaJoinRel(condition=[=($9, $11)], joinType=[inner])
             ImpalaJoinRel(condition=[=($10, $3)], joinType=[inner])
-              ImpalaProjectRel(ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_quantity=[$9], ss_sales_price=[$12], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[[50.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]; NULL AS FALSE]:DECIMAL(5, 2)), SEARCH($21, Sarg[[50.00:DECIMAL(7, 2)..300.00:DECIMAL(7, 2)]; NULL AS FALSE]:DECIMAL(7, 2)), IS NOT NULL($6), IS NOT NULL($3), IS NOT NULL($4), IS NOT NULL($5), IS NOT NULL($22))])
+              ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[50.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]; NULL AS FALSE]:DECIMAL(5, 2)), SEARCH($8, Sarg[[50.00:DECIMAL(7, 2)..300.00:DECIMAL(7, 2)]; NULL AS FALSE]:DECIMAL(7, 2)), IS NOT NULL($3), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($9))])
+                ImpalaProjectRel(ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_quantity=[$9], ss_sales_price=[$12], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-              ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(s_store_sk=[$0])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($6, 2001), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(hd_demo_sk=[$0], hd_dep_count=[$3])
-            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[1, 3]), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(=($1, 2001), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[1, 3]), IS NOT NULL($0))])
+            ImpalaProjectRel(hd_demo_sk=[$0], hd_dep_count=[$3])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=635.22KB mem-reservation=0B thread-reservation=1
@@ -482,27 +486,29 @@ Per-Host Resource Estimates: Memory=463MB
 ImpalaAggRel(group=[{}], EXPR$0=[AVG($2)], EXPR$1=[AVG($0)], EXPR$2=[AVG($1)], EXPR$3=[SUM($1)])
   ImpalaProjectRel(ss_ext_sales_price=[$11], ss_ext_wholesale_cost=[$12], cast_ss_quantity=[CAST($9):BIGINT])
     ImpalaJoinRel(condition=[AND(OR(SEARCH($1, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($18, 1)), OR(=($1, _UTF-8'U'), =($2, _UTF-8'2 yr Degree'), =($18, 1)), OR(=($1, _UTF-8'U'), >=($10, 50.00:DECIMAL(4, 2)), =($18, 1)), OR(=($1, _UTF-8'U'), <=($10, 100.00:DECIMAL(5, 2)), =($18, 1)), OR(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR( [...]
-      ImpalaProjectRel(cd_demo_sk=[$0], cd_marital_status=[$2], cd_education_status=[$3])
-        ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), OR(SEARCH($2, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($3, _UTF-8'College')), OR(SEARCH($2, Sarg[_UTF-8'S':VARCHAR(214 [...]
+      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), OR(SEARCH($1, Sarg[_UTF-8'U':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'W':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), =($2, _UTF-8'College')), OR(SEARCH($1, Sarg[_UTF-8'S':VARCHAR(21474 [...]
+        ImpalaProjectRel(cd_demo_sk=[$0], cd_marital_status=[$2], cd_education_status=[$3])
           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
       ImpalaJoinRel(condition=[AND(=($4, $0), OR(SEARCH($1, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), >=($10, 50.00)), OR(SEARCH($1, Sarg[_UTF-8'GA':VARCHAR(2147 [...]
-        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-          ImpalaFilterRel(condition=[AND(=($10, _UTF-8'United States'), SEARCH($8, Sarg[_UTF-8'CA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NE':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OK':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483 [...]
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$1])
+          ImpalaFilterRel(condition=[AND(=($2, _UTF-8'United States'), SEARCH($1, Sarg[_UTF-8'CA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KY':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NE':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OK':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'SC':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(21474836 [...]
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_country=[$10])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
         ImpalaJoinRel(condition=[AND(=($1, $12), OR(>=($5, 100.00:DECIMAL(5, 2)), >=($5, 50.00:DECIMAL(4, 2)), =($13, 1)), OR(>=($5, 100.00:DECIMAL(5, 2)), <=($5, 100.00:DECIMAL(5, 2)), =($13, 1)), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1), >=($5, 150.00:DECIMAL(5, 2))), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1), <=($5, 200.00:DECIMAL(5, 2))), OR(>=($5, 100.00:DECIMAL(5, 2)), =($13, 1)), OR(<=($5, 150.00:DECIMAL(5, 2)), >=($5, 50.00:DECIMAL(4, 2)), =($13, 1)), OR(<=($5, 150.00:DECIMAL( [...]
           ImpalaJoinRel(condition=[=($9, $11)], joinType=[inner])
             ImpalaJoinRel(condition=[=($10, $3)], joinType=[inner])
-              ImpalaProjectRel(ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_quantity=[$9], ss_sales_price=[$12], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[[50.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]; NULL AS FALSE]:DECIMAL(5, 2)), SEARCH($21, Sarg[[50.00:DECIMAL(7, 2)..300.00:DECIMAL(7, 2)]; NULL AS FALSE]:DECIMAL(7, 2)), IS NOT NULL($6), IS NOT NULL($3), IS NOT NULL($4), IS NOT NULL($5), IS NOT NULL($22))])
+              ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[50.00:DECIMAL(5, 2)..200.00:DECIMAL(5, 2)]; NULL AS FALSE]:DECIMAL(5, 2)), SEARCH($8, Sarg[[50.00:DECIMAL(7, 2)..300.00:DECIMAL(7, 2)]; NULL AS FALSE]:DECIMAL(7, 2)), IS NOT NULL($3), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($9))])
+                ImpalaProjectRel(ss_cdemo_sk=[$3], ss_hdemo_sk=[$4], ss_addr_sk=[$5], ss_store_sk=[$6], ss_quantity=[$9], ss_sales_price=[$12], ss_ext_sales_price=[$14], ss_ext_wholesale_cost=[$15], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-              ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(s_store_sk=[$0])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($6, 2001), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(hd_demo_sk=[$0], hd_dep_count=[$3])
-            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[1, 3]), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(=($1, 2001), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[1, 3]), IS NOT NULL($0))])
+            ImpalaProjectRel(hd_demo_sk=[$0], hd_dep_count=[$3])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
 F07:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=68.03KB mem-reservation=0B thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14a.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14a.test
index 94a358c0e..972e0aac6 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14a.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14a.test
@@ -117,19 +117,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(ss_item_sk=[$0], ss_quantity=[$1], ss_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaProjectRel(SS_ITEM_SK=[$0])
                       ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                         ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                           ImpalaFilterRel(condition=[=($3, 2)])
@@ -143,40 +144,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                           ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                         ImpalaAggRel(group=[{0, 1, 2}])
                                           ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                 ImpalaAggRel(group=[{0, 1, 2}])
                                   ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                         ImpalaProjectRel(d_date_sk=[$0])
-                                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -185,28 +189,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaUnionRel(all=[true])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaProjectRel(CHANNEL=[_UTF-8'catalog':VARCHAR(2147483647) CHARACTER SET "UTF-8"], I_BRAND_ID=[$0], I_CLASS_ID=[$1], I_CATEGORY_ID=[$2], SALES=[$3], NUMBER_SALES=[$4])
           ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
             ImpalaFilterRel(condition=[IS NOT NULL($3)])
@@ -216,19 +223,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(cs_item_sk=[$0], cs_quantity=[$1], cs_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaProjectRel(SS_ITEM_SK=[$0])
                       ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                         ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                           ImpalaFilterRel(condition=[=($3, 2)])
@@ -242,40 +250,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                           ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                         ImpalaAggRel(group=[{0, 1, 2}])
                                           ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                 ImpalaAggRel(group=[{0, 1, 2}])
                                   ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                         ImpalaProjectRel(d_date_sk=[$0])
-                                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -284,28 +295,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaUnionRel(all=[true])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaProjectRel(CHANNEL=[_UTF-8'web':VARCHAR(2147483647) CHARACTER SET "UTF-8"], I_BRAND_ID=[$0], I_CLASS_ID=[$1], I_CATEGORY_ID=[$2], SALES=[$3], NUMBER_SALES=[$4])
         ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
           ImpalaFilterRel(condition=[IS NOT NULL($3)])
@@ -315,19 +329,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                   ImpalaProjectRel(ws_item_sk=[$0], ws_quantity=[$1], ws_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                     ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                       ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                        ImpalaProjectRel(ws_item_sk=[$2], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                          ImpalaProjectRel(ws_item_sk=[$2], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaProjectRel(SS_ITEM_SK=[$0])
                     ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                       ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                         ImpalaFilterRel(condition=[=($3, 2)])
@@ -341,40 +356,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                         ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                             ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                               ImpalaProjectRel(d_date_sk=[$0])
-                                                ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                       ImpalaAggRel(group=[{0, 1, 2}])
                                         ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                             ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                              ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                               ImpalaProjectRel(d_date_sk=[$0])
-                                                ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                               ImpalaAggRel(group=[{0, 1, 2}])
                                 ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                     ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                      ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                       ImpalaProjectRel(d_date_sk=[$0])
-                                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                    ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaFilterRel(condition=[IS NOT NULL($0)])
             ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -383,28 +401,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                   ImpalaUnionRel(all=[true])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.51GB mem-reservation=192.31MB thread-reservation=1 runtime-filters-memory=10.00MB
 |  max-parallelism=1 segment-costs=[5145400923, 19654022184, 10241405655, 1085101, 1769895, 1541597649, 10759612372, 5145400923, 19654022184, 10241405655, 1085101, 1769895, 833573587, 10759612372, 5145400923, 19654022184, 10241405655, 1085101, 1769895, 454768628, 10759612372, 770650, 567803, 886354, 600]
@@ -1749,19 +1770,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(ss_item_sk=[$0], ss_quantity=[$1], ss_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaProjectRel(SS_ITEM_SK=[$0])
                       ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                         ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                           ImpalaFilterRel(condition=[=($3, 2)])
@@ -1775,40 +1797,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                           ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                         ImpalaAggRel(group=[{0, 1, 2}])
                                           ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                 ImpalaAggRel(group=[{0, 1, 2}])
                                   ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                         ImpalaProjectRel(d_date_sk=[$0])
-                                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -1817,28 +1842,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaUnionRel(all=[true])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaProjectRel(CHANNEL=[_UTF-8'catalog':VARCHAR(2147483647) CHARACTER SET "UTF-8"], I_BRAND_ID=[$0], I_CLASS_ID=[$1], I_CATEGORY_ID=[$2], SALES=[$3], NUMBER_SALES=[$4])
           ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
             ImpalaFilterRel(condition=[IS NOT NULL($3)])
@@ -1848,19 +1876,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(cs_item_sk=[$0], cs_quantity=[$1], cs_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaProjectRel(SS_ITEM_SK=[$0])
                       ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                         ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                           ImpalaFilterRel(condition=[=($3, 2)])
@@ -1874,40 +1903,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                           ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                         ImpalaAggRel(group=[{0, 1, 2}])
                                           ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                 ImpalaAggRel(group=[{0, 1, 2}])
                                   ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                         ImpalaProjectRel(d_date_sk=[$0])
-                                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -1916,28 +1948,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaUnionRel(all=[true])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaProjectRel(CHANNEL=[_UTF-8'web':VARCHAR(2147483647) CHARACTER SET "UTF-8"], I_BRAND_ID=[$0], I_CLASS_ID=[$1], I_CATEGORY_ID=[$2], SALES=[$3], NUMBER_SALES=[$4])
         ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
           ImpalaFilterRel(condition=[IS NOT NULL($3)])
@@ -1947,19 +1982,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                   ImpalaProjectRel(ws_item_sk=[$0], ws_quantity=[$1], ws_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                     ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                       ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                        ImpalaProjectRel(ws_item_sk=[$2], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                          ImpalaProjectRel(ws_item_sk=[$2], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaProjectRel(SS_ITEM_SK=[$0])
                     ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                       ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                         ImpalaFilterRel(condition=[=($3, 2)])
@@ -1973,40 +2009,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                         ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                             ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                               ImpalaProjectRel(d_date_sk=[$0])
-                                                ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                       ImpalaAggRel(group=[{0, 1, 2}])
                                         ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                             ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                              ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                               ImpalaProjectRel(d_date_sk=[$0])
-                                                ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                               ImpalaAggRel(group=[{0, 1, 2}])
                                 ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                     ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                      ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                       ImpalaProjectRel(d_date_sk=[$0])
-                                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                    ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaFilterRel(condition=[IS NOT NULL($0)])
             ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -2015,28 +2054,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                   ImpalaUnionRel(all=[true])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F96:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.05MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[634] cpu-comparison-result=1617 [max(1 (self) vs 1617 (sum children))]
@@ -4467,19 +4509,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(ss_item_sk=[$0], ss_quantity=[$1], ss_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaProjectRel(SS_ITEM_SK=[$0])
                       ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                         ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                           ImpalaFilterRel(condition=[=($3, 2)])
@@ -4493,40 +4536,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                           ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                         ImpalaAggRel(group=[{0, 1, 2}])
                                           ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                 ImpalaAggRel(group=[{0, 1, 2}])
                                   ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                         ImpalaProjectRel(d_date_sk=[$0])
-                                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -4535,28 +4581,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaUnionRel(all=[true])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaProjectRel(CHANNEL=[_UTF-8'catalog':VARCHAR(2147483647) CHARACTER SET "UTF-8"], I_BRAND_ID=[$0], I_CLASS_ID=[$1], I_CATEGORY_ID=[$2], SALES=[$3], NUMBER_SALES=[$4])
           ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
             ImpalaFilterRel(condition=[IS NOT NULL($3)])
@@ -4566,19 +4615,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaProjectRel(cs_item_sk=[$0], cs_quantity=[$1], cs_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaProjectRel(SS_ITEM_SK=[$0])
                       ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                         ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                           ImpalaFilterRel(condition=[=($3, 2)])
@@ -4592,40 +4642,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                           ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                         ImpalaAggRel(group=[{0, 1, 2}])
                                           ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                             ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                 ImpalaProjectRel(d_date_sk=[$0])
-                                                  ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                 ImpalaAggRel(group=[{0, 1, 2}])
                                   ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                         ImpalaProjectRel(d_date_sk=[$0])
-                                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -4634,28 +4687,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                     ImpalaUnionRel(all=[true])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                       ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                          ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                            ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaProjectRel(CHANNEL=[_UTF-8'web':VARCHAR(2147483647) CHARACTER SET "UTF-8"], I_BRAND_ID=[$0], I_CLASS_ID=[$1], I_CATEGORY_ID=[$2], SALES=[$3], NUMBER_SALES=[$4])
         ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
           ImpalaFilterRel(condition=[IS NOT NULL($3)])
@@ -4665,19 +4721,20 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                   ImpalaProjectRel(ws_item_sk=[$0], ws_quantity=[$1], ws_list_price=[$2], i_brand_id=[$6], i_class_id=[$7], i_category_id=[$8])
                     ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                       ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                        ImpalaProjectRel(ws_item_sk=[$2], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                          ImpalaProjectRel(ws_item_sk=[$2], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 11), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 11), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaProjectRel(SS_ITEM_SK=[$0])
                     ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                       ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                         ImpalaFilterRel(condition=[=($3, 2)])
@@ -4691,40 +4748,43 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                                         ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                             ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                               ImpalaProjectRel(d_date_sk=[$0])
-                                                ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                       ImpalaAggRel(group=[{0, 1, 2}])
                                         ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                             ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                              ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                               ImpalaProjectRel(d_date_sk=[$0])
-                                                ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                               ImpalaAggRel(group=[{0, 1, 2}])
                                 ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                     ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                      ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                        ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                       ImpalaProjectRel(d_date_sk=[$0])
-                                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                    ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                      ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaFilterRel(condition=[IS NOT NULL($0)])
             ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
@@ -4733,28 +4793,31 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
                   ImpalaUnionRel(all=[true])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                          ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                          ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F96:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.05MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[634] cpu-comparison-result=1617 [max(1 (self) vs 1617 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14b.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14b.test
index 7643dac85..28906ecbb 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14b.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q14b.test
@@ -118,19 +118,19 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
           ImpalaAggRel(group=[{0, 1, 2}], SALES=[SUM($3)], NUMBER_SALES=[COUNT()])
             ImpalaProjectRel(I_BRAND_ID=[$1], I_CLASS_ID=[$2], I_CATEGORY_ID=[$3], $f3=[*(CAST($5):DECIMAL(10, 0), $6)])
               ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                    ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                      ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(SS_ITEM_SK=[$0])
                         ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($0))])
+                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                           ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                             ImpalaFilterRel(condition=[=($3, 2)])
@@ -144,50 +144,54 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                                             ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                           ImpalaAggRel(group=[{0, 1, 2}])
                                             ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                   ImpalaAggRel(group=[{0, 1, 2}])
                                     ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                       ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                            ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                           ImpalaProjectRel(d_date_sk=[$0])
-                                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                    ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaFilterRel(condition=[IS NOT NULL($0)])
                       ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
-                        ImpalaProjectRel(D_WEEK_SEQ=[$4])
-                          ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 12), =($9, 20))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaProjectRel(D_WEEK_SEQ=[$0])
+                          ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 12), =($3, 20))])
+                            ImpalaProjectRel(d_week_seq=[$4], d_year=[$6], d_moy=[$8], d_dom=[$9])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
             ImpalaProjectRel($f0=[*(CAST($0):DECIMAL(10, 0), $1)])
@@ -195,46 +199,49 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaUnionRel(all=[true])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($3)])
           ImpalaAggRel(group=[{0, 1, 2}], SALES=[SUM($3)], NUMBER_SALES=[COUNT()])
             ImpalaProjectRel(I_BRAND_ID=[$1], I_CLASS_ID=[$2], I_CATEGORY_ID=[$3], $f3=[*(CAST($5):DECIMAL(10, 0), $6)])
               ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                    ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                      ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(SS_ITEM_SK=[$0])
                         ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($0))])
+                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                           ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                             ImpalaFilterRel(condition=[=($3, 2)])
@@ -248,50 +255,54 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                                             ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                           ImpalaAggRel(group=[{0, 1, 2}])
                                             ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                   ImpalaAggRel(group=[{0, 1, 2}])
                                     ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                       ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                            ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                           ImpalaProjectRel(d_date_sk=[$0])
-                                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                    ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaFilterRel(condition=[IS NOT NULL($0)])
                       ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
-                        ImpalaProjectRel(D_WEEK_SEQ=[$4])
-                          ImpalaFilterRel(condition=[AND(=($6, 1998), =($8, 12), =($9, 20))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaProjectRel(D_WEEK_SEQ=[$0])
+                          ImpalaFilterRel(condition=[AND(=($1, 1998), =($2, 12), =($3, 20))])
+                            ImpalaProjectRel(d_week_seq=[$4], d_year=[$6], d_moy=[$8], d_dom=[$9])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
             ImpalaProjectRel($f0=[*(CAST($0):DECIMAL(10, 0), $1)])
@@ -299,28 +310,31 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaUnionRel(all=[true])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=595.78MB mem-reservation=297.00MB thread-reservation=1 runtime-filters-memory=10.00MB
 |  max-parallelism=1 segment-costs=[5145400923, 19654022184, 10241405655, 1085101, 1769895, 28656296, 22988, 1585330419, 10759612372, 5145400923, 19654022184, 10241405655, 1085101, 1769895, 28656296, 22988, 1585330419, 10759612372, 73999465, 1200]
@@ -1275,19 +1289,19 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
           ImpalaAggRel(group=[{0, 1, 2}], SALES=[SUM($3)], NUMBER_SALES=[COUNT()])
             ImpalaProjectRel(I_BRAND_ID=[$1], I_CLASS_ID=[$2], I_CATEGORY_ID=[$3], $f3=[*(CAST($5):DECIMAL(10, 0), $6)])
               ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                    ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                      ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(SS_ITEM_SK=[$0])
                         ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($0))])
+                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                           ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                             ImpalaFilterRel(condition=[=($3, 2)])
@@ -1301,50 +1315,54 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                                             ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                           ImpalaAggRel(group=[{0, 1, 2}])
                                             ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                   ImpalaAggRel(group=[{0, 1, 2}])
                                     ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                       ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                            ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                           ImpalaProjectRel(d_date_sk=[$0])
-                                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                    ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaFilterRel(condition=[IS NOT NULL($0)])
                       ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
-                        ImpalaProjectRel(D_WEEK_SEQ=[$4])
-                          ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 12), =($9, 20))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaProjectRel(D_WEEK_SEQ=[$0])
+                          ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 12), =($3, 20))])
+                            ImpalaProjectRel(d_week_seq=[$4], d_year=[$6], d_moy=[$8], d_dom=[$9])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
             ImpalaProjectRel($f0=[*(CAST($0):DECIMAL(10, 0), $1)])
@@ -1352,46 +1370,49 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaUnionRel(all=[true])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($3)])
           ImpalaAggRel(group=[{0, 1, 2}], SALES=[SUM($3)], NUMBER_SALES=[COUNT()])
             ImpalaProjectRel(I_BRAND_ID=[$1], I_CLASS_ID=[$2], I_CATEGORY_ID=[$3], $f3=[*(CAST($5):DECIMAL(10, 0), $6)])
               ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                    ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                      ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(SS_ITEM_SK=[$0])
                         ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($0))])
+                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                           ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                             ImpalaFilterRel(condition=[=($3, 2)])
@@ -1405,50 +1426,54 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                                             ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                           ImpalaAggRel(group=[{0, 1, 2}])
                                             ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                   ImpalaAggRel(group=[{0, 1, 2}])
                                     ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                       ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                            ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                           ImpalaProjectRel(d_date_sk=[$0])
-                                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                    ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaFilterRel(condition=[IS NOT NULL($0)])
                       ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
-                        ImpalaProjectRel(D_WEEK_SEQ=[$4])
-                          ImpalaFilterRel(condition=[AND(=($6, 1998), =($8, 12), =($9, 20))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaProjectRel(D_WEEK_SEQ=[$0])
+                          ImpalaFilterRel(condition=[AND(=($1, 1998), =($2, 12), =($3, 20))])
+                            ImpalaProjectRel(d_week_seq=[$4], d_year=[$6], d_moy=[$8], d_dom=[$9])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
             ImpalaProjectRel($f0=[*(CAST($0):DECIMAL(10, 0), $1)])
@@ -1456,28 +1481,31 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaUnionRel(all=[true])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F66:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1239] cpu-comparison-result=1058 [max(1 (self) vs 1058 (sum children))]
@@ -3217,19 +3245,19 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
           ImpalaAggRel(group=[{0, 1, 2}], SALES=[SUM($3)], NUMBER_SALES=[COUNT()])
             ImpalaProjectRel(I_BRAND_ID=[$1], I_CLASS_ID=[$2], I_CATEGORY_ID=[$3], $f3=[*(CAST($5):DECIMAL(10, 0), $6)])
               ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                    ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                      ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(SS_ITEM_SK=[$0])
                         ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($0))])
+                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                           ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                             ImpalaFilterRel(condition=[=($3, 2)])
@@ -3243,50 +3271,54 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                                             ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                           ImpalaAggRel(group=[{0, 1, 2}])
                                             ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                   ImpalaAggRel(group=[{0, 1, 2}])
                                     ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                       ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                            ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                           ImpalaProjectRel(d_date_sk=[$0])
-                                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                    ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaFilterRel(condition=[IS NOT NULL($0)])
                       ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
-                        ImpalaProjectRel(D_WEEK_SEQ=[$4])
-                          ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 12), =($9, 20))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaProjectRel(D_WEEK_SEQ=[$0])
+                          ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 12), =($3, 20))])
+                            ImpalaProjectRel(d_week_seq=[$4], d_year=[$6], d_moy=[$8], d_dom=[$9])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
             ImpalaProjectRel($f0=[*(CAST($0):DECIMAL(10, 0), $1)])
@@ -3294,46 +3326,49 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaUnionRel(all=[true])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[>($3, $5)], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($3)])
           ImpalaAggRel(group=[{0, 1, 2}], SALES=[SUM($3)], NUMBER_SALES=[COUNT()])
             ImpalaProjectRel(I_BRAND_ID=[$1], I_CLASS_ID=[$2], I_CATEGORY_ID=[$3], $f3=[*(CAST($5):DECIMAL(10, 0), $6)])
               ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                    ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                      ImpalaProjectRel(ss_item_sk=[$1], ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                     ImpalaAggRel(group=[{0}])
                       ImpalaProjectRel(SS_ITEM_SK=[$0])
                         ImpalaJoinRel(condition=[AND(=($1, $4), =($2, $5), =($3, $6))], joinType=[inner])
-                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($0))])
+                            ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                           ImpalaProjectRel(BRAND_ID=[$0], CLASS_ID=[$1], CATEGORY_ID=[$2])
                             ImpalaFilterRel(condition=[=($3, 2)])
@@ -3347,50 +3382,54 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                                             ImpalaProjectRel(BRAND_ID=[$4], CLASS_ID=[$5], CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($22))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                           ImpalaAggRel(group=[{0, 1, 2}])
                                             ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                               ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                                  ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
-                                                    ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                                    ImpalaProjectRel(cs_item_sk=[$14], cs_sold_date_sk=[$33])
                                                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                                                   ImpalaProjectRel(d_date_sk=[$0])
-                                                    ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                                ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                                  ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                                   ImpalaAggRel(group=[{0, 1, 2}])
                                     ImpalaProjectRel(I_BRAND_ID=[$4], I_CLASS_ID=[$5], I_CATEGORY_ID=[$6])
                                       ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
                                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                                          ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
-                                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                                            ImpalaProjectRel(ws_item_sk=[$2], ws_sold_date_sk=[$33])
                                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                                           ImpalaProjectRel(d_date_sk=[$0])
-                                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                                        ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
-                                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($9), IS NOT NULL($11))])
+                                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3))])
+                                          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_class_id=[$9], i_category_id=[$11])
                                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                    ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_week_seq=[$4])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                     ImpalaFilterRel(condition=[IS NOT NULL($0)])
                       ImpalaAggRel(group=[{}], agg#0=[SINGLE_VALUE($0)])
-                        ImpalaProjectRel(D_WEEK_SEQ=[$4])
-                          ImpalaFilterRel(condition=[AND(=($6, 1998), =($8, 12), =($9, 20))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaProjectRel(D_WEEK_SEQ=[$0])
+                          ImpalaFilterRel(condition=[AND(=($1, 1998), =($2, 12), =($3, 20))])
+                            ImpalaProjectRel(d_week_seq=[$4], d_year=[$6], d_moy=[$8], d_dom=[$9])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], AVERAGE_SALES=[AVG($0)])
             ImpalaProjectRel($f0=[*(CAST($0):DECIMAL(10, 0), $1)])
@@ -3398,28 +3437,31 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaUnionRel(all=[true])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[IS NOT NULL($22)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(ss_quantity=[$9], ss_list_price=[$11], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                     ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                      ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                        ImpalaProjectRel(cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(d_date_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                          ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(QUANTITY=[$0], LIST_PRICE=[$1])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[IS NOT NULL($33)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaProjectRel(ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[[1998..2000]]), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998..2000]]), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F66:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1239] cpu-comparison-result=1058 [max(1 (self) vs 1058 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q15.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q15.test
index 28117ea68..5a67fc41e 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q15.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q15.test
@@ -27,18 +27,19 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(CA_ZIP=[$6], cs_sales_price=[$1])
       ImpalaJoinRel(condition=[AND(OR(SEARCH(SUBSTR($6, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'80348':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'81792':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'83405':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85392':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85460':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85669':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'86197':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'8647 [...]
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sales_price=[$20], cs_sold_date_sk=[$33])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sales_price=[$20], cs_sold_date_sk=[$33])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 2000), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 2000), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-          ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+            ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=3.25GB mem-reservation=103.81MB thread-reservation=1 runtime-filters-memory=33.00MB
@@ -145,18 +146,19 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(CA_ZIP=[$6], cs_sales_price=[$1])
       ImpalaJoinRel(condition=[AND(OR(SEARCH(SUBSTR($6, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'80348':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'81792':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'83405':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85392':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85460':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85669':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'86197':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'8647 [...]
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sales_price=[$20], cs_sold_date_sk=[$33])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sales_price=[$20], cs_sold_date_sk=[$33])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 2000), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 2000), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-          ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+            ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F07:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.04MB mem-reservation=4.00MB thread-reservation=1
@@ -357,18 +359,19 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(CA_ZIP=[$6], cs_sales_price=[$1])
       ImpalaJoinRel(condition=[AND(OR(SEARCH(SUBSTR($6, 1:BIGINT, 5:BIGINT), Sarg[_UTF-8'80348':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'81792':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'83405':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85392':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85460':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'85669':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'86197':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'8647 [...]
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sales_price=[$20], cs_sold_date_sk=[$33])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sales_price=[$20], cs_sold_date_sk=[$33])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 2000), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 2000), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-          ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+            ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F07:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.04MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q16.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q16.test
index cf479ea92..4dfb215d0 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q16.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q16.test
@@ -41,46 +41,52 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
           ImpalaJoinRel(condition=[=($6, $0)], joinType=[right])
             ImpalaProjectRel(cr_order_number=[$0], $f1=[true])
               ImpalaAggRel(group=[{0}])
-                ImpalaProjectRel(cr_order_number=[$15])
-                  ImpalaFilterRel(condition=[IS NOT NULL($15)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(cr_order_number=[$15])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
             ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
               ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $7)], joinType=[inner])
-                  ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16], cs_ext_ship_cost=[$27], cs_net_profit=[$32])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($9), IS NOT NULL($10), IS NOT NULL($16), IS NOT NULL($13))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4), IS NOT NULL($3))])
+                    ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16], cs_ext_ship_cost=[$27], cs_net_profit=[$32])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                   ImpalaProjectRel(ca_address_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($8, _UTF-8'MS'), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                    ImpalaFilterRel(condition=[AND(=($1, _UTF-8'MS'), IS NOT NULL($0))])
+                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaProjectRel(cc_call_center_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($25, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(cc_call_center_sk=[$0], cc_county=[$25])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
         ImpalaProjectRel(cs_warehouse_sk0=[$2], cs_order_number0=[$3])
           ImpalaJoinRel(condition=[AND(=($3, $1), <>($2, $0))], joinType=[inner])
-            ImpalaProjectRel(cs_warehouse_sk=[$13], cs_order_number=[$16])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($13), IS NOT NULL($16))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaProjectRel(cs_warehouse_sk=[$13], cs_order_number=[$16])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaAggRel(group=[{0, 1}])
               ImpalaProjectRel(cs_warehouse_sk=[$3], cs_order_number=[$4])
                 ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($1, $5)], joinType=[inner])
-                      ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($9), IS NOT NULL($10), IS NOT NULL($13), IS NOT NULL($16))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($4))])
+                        ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($8, _UTF-8'MS'), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, _UTF-8'MS'), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(cc_call_center_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($25, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                      ImpalaProjectRel(cc_call_center_sk=[$0], cc_county=[$25])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=13.30GB mem-reservation=226.00MB thread-reservation=1 runtime-filters-memory=55.00MB
 |  max-parallelism=1 segment-costs=[2331318143, 908560583, 4102622428, 7535971, 0, 3]
@@ -336,46 +342,52 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
           ImpalaJoinRel(condition=[=($6, $0)], joinType=[right])
             ImpalaProjectRel(cr_order_number=[$0], $f1=[true])
               ImpalaAggRel(group=[{0}])
-                ImpalaProjectRel(cr_order_number=[$15])
-                  ImpalaFilterRel(condition=[IS NOT NULL($15)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(cr_order_number=[$15])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
             ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
               ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $7)], joinType=[inner])
-                  ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16], cs_ext_ship_cost=[$27], cs_net_profit=[$32])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($9), IS NOT NULL($10), IS NOT NULL($16), IS NOT NULL($13))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4), IS NOT NULL($3))])
+                    ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16], cs_ext_ship_cost=[$27], cs_net_profit=[$32])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                   ImpalaProjectRel(ca_address_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($8, _UTF-8'MS'), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                    ImpalaFilterRel(condition=[AND(=($1, _UTF-8'MS'), IS NOT NULL($0))])
+                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaProjectRel(cc_call_center_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($25, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(cc_call_center_sk=[$0], cc_county=[$25])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
         ImpalaProjectRel(cs_warehouse_sk0=[$2], cs_order_number0=[$3])
           ImpalaJoinRel(condition=[AND(=($3, $1), <>($2, $0))], joinType=[inner])
-            ImpalaProjectRel(cs_warehouse_sk=[$13], cs_order_number=[$16])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($13), IS NOT NULL($16))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaProjectRel(cs_warehouse_sk=[$13], cs_order_number=[$16])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaAggRel(group=[{0, 1}])
               ImpalaProjectRel(cs_warehouse_sk=[$3], cs_order_number=[$4])
                 ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($1, $5)], joinType=[inner])
-                      ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($9), IS NOT NULL($10), IS NOT NULL($13), IS NOT NULL($16))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($4))])
+                        ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($8, _UTF-8'MS'), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, _UTF-8'MS'), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(cc_call_center_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($25, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                      ImpalaProjectRel(cc_call_center_sk=[$0], cc_county=[$25])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
 F14:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[0, 0, 3] cpu-comparison-result=460 [max(1 (self) vs 460 (sum children))]
@@ -853,46 +865,52 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
           ImpalaJoinRel(condition=[=($6, $0)], joinType=[right])
             ImpalaProjectRel(cr_order_number=[$0], $f1=[true])
               ImpalaAggRel(group=[{0}])
-                ImpalaProjectRel(cr_order_number=[$15])
-                  ImpalaFilterRel(condition=[IS NOT NULL($15)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(cr_order_number=[$15])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_returns]])
             ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
               ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $7)], joinType=[inner])
-                  ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16], cs_ext_ship_cost=[$27], cs_net_profit=[$32])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($9), IS NOT NULL($10), IS NOT NULL($16), IS NOT NULL($13))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4), IS NOT NULL($3))])
+                    ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16], cs_ext_ship_cost=[$27], cs_net_profit=[$32])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                   ImpalaProjectRel(ca_address_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($8, _UTF-8'MS'), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                    ImpalaFilterRel(condition=[AND(=($1, _UTF-8'MS'), IS NOT NULL($0))])
+                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaProjectRel(cc_call_center_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($25, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(cc_call_center_sk=[$0], cc_county=[$25])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
         ImpalaProjectRel(cs_warehouse_sk0=[$2], cs_order_number0=[$3])
           ImpalaJoinRel(condition=[AND(=($3, $1), <>($2, $0))], joinType=[inner])
-            ImpalaProjectRel(cs_warehouse_sk=[$13], cs_order_number=[$16])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($13), IS NOT NULL($16))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+              ImpalaProjectRel(cs_warehouse_sk=[$13], cs_order_number=[$16])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaAggRel(group=[{0, 1}])
               ImpalaProjectRel(cs_warehouse_sk=[$3], cs_order_number=[$4])
                 ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($1, $5)], joinType=[inner])
-                      ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($9), IS NOT NULL($10), IS NOT NULL($13), IS NOT NULL($16))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($3), IS NOT NULL($4))])
+                        ImpalaProjectRel(cs_ship_date_sk=[$1], cs_ship_addr_sk=[$9], cs_call_center_sk=[$10], cs_warehouse_sk=[$13], cs_order_number=[$16])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($8, _UTF-8'MS'), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, _UTF-8'MS'), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-02-01:DATE..2001-04-02:DATE]]:DATE), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                   ImpalaProjectRel(cc_call_center_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($25, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Dauphin County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Daviess County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jackson County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Walker County':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                      ImpalaProjectRel(cc_call_center_sk=[$0], cc_county=[$25])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, call_center]])
 F14:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[0, 0, 3] cpu-comparison-result=460 [max(1 (self) vs 460 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q17.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q17.test
index ca75d7ad0..b108e5951 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q17.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q17.test
@@ -53,35 +53,38 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
       ImpalaProjectRel(I_ITEM_ID=[$1], I_ITEM_DESC=[$2], S_STATE=[$11], ss_quantity=[$7], sr_return_quantity=[$20], cs_quantity=[$14], cast_ss_quantity=[CAST($7):BIGINT], cast_sr_return_quantity=[CAST($20):BIGINT], cast_cs_quantity=[CAST($14):BIGINT])
         ImpalaJoinRel(condition=[AND(=($4, $18), =($3, $17), =($6, $19))], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
               ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                  ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($15, _UTF-8'1999Q1'), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[AND(=($1, _UTF-8'1999Q1'), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
           ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
             ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($15, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+                ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($15, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=15.72GB mem-reservation=164.58MB thread-reservation=1 runtime-filters-memory=55.00MB
 |  max-parallelism=1 segment-costs=[1844676000, 137237408, 1500]
@@ -275,35 +278,38 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
       ImpalaProjectRel(I_ITEM_ID=[$1], I_ITEM_DESC=[$2], S_STATE=[$11], ss_quantity=[$7], sr_return_quantity=[$20], cs_quantity=[$14], cast_ss_quantity=[CAST($7):BIGINT], cast_sr_return_quantity=[CAST($20):BIGINT], cast_cs_quantity=[CAST($14):BIGINT])
         ImpalaJoinRel(condition=[AND(=($4, $18), =($3, $17), =($6, $19))], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
               ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                  ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($15, _UTF-8'1999Q1'), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[AND(=($1, _UTF-8'1999Q1'), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
           ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
             ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($15, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+                ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($15, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F11:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.44MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1570] cpu-comparison-result=216 [max(1 (self) vs 216 (sum children))]
@@ -661,35 +667,38 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
       ImpalaProjectRel(I_ITEM_ID=[$1], I_ITEM_DESC=[$2], S_STATE=[$11], ss_quantity=[$7], sr_return_quantity=[$20], cs_quantity=[$14], cast_ss_quantity=[CAST($7):BIGINT], cast_sr_return_quantity=[CAST($20):BIGINT], cast_cs_quantity=[CAST($14):BIGINT])
         ImpalaJoinRel(condition=[AND(=($4, $18), =($3, $17), =($6, $19))], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
               ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                  ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($15, _UTF-8'1999Q1'), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[AND(=($1, _UTF-8'1999Q1'), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
           ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
             ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($15, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+                ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($15, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'1999Q1':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q2':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'1999Q3':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_quarter_name=[$15])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F11:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.44MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1570] cpu-comparison-result=216 [max(1 (self) vs 216 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q18.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q18.test
index c15388f57..9c0c15982 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q18.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q18.test
@@ -41,31 +41,34 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], sort3=[$0], dir0=[ASC], dir1=[
     ImpalaProjectRel(I_ITEM_ID=[$10], CA_COUNTRY=[$3], CA_STATE=[$2], CA_COUNTY=[$1], $f4=[EXPLICIT_CAST($14)], $f5=[EXPLICIT_CAST($15)], $f6=[EXPLICIT_CAST($17)], $f7=[EXPLICIT_CAST($16)], $f8=[EXPLICIT_CAST($18)], $f9=[EXPLICIT_CAST($8)], $f10=[EXPLICIT_CAST($22)])
       ImpalaJoinRel(condition=[=($11, $5)], joinType=[inner])
         ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
-          ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7], ca_state=[$8], ca_country=[$10])
-            ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'IL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KS':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+          ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'IL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KS':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7], ca_state=[$8], ca_country=[$10])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
           ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-            ImpalaProjectRel(cd_demo_sk=[$0])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
-            ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4], c_birth_year=[$13])
-              ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[3, 6, 7, 8, 11, 12]), IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($4))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
+            ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$1], c_current_addr_sk=[$2], c_birth_year=[$4])
+              ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[3, 6, 7, 8, 11, 12]), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4], c_birth_month=[$12], c_birth_year=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaJoinRel(condition=[=($1, $10)], joinType=[inner])
             ImpalaJoinRel(condition=[=($8, $9)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_net_profit=[$32], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($33), IS NOT NULL($14))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0), IS NOT NULL($8), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_net_profit=[$32], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-            ImpalaProjectRel(cd_demo_sk=[$0], cd_dep_count=[$6])
-              ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($3, _UTF-8'Primary'), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaProjectRel(cd_demo_sk=[$0], cd_dep_count=[$3])
+              ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'Primary'), IS NOT NULL($0))])
+                ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_education_status=[$3], cd_dep_count=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=10.18GB mem-reservation=236.12MB thread-reservation=1 runtime-filters-memory=11.00MB
 |  max-parallelism=1 segment-costs=[2211080000, 558849107, 1315480798, 1100]
@@ -253,31 +256,34 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], sort3=[$0], dir0=[ASC], dir1=[
     ImpalaProjectRel(I_ITEM_ID=[$10], CA_COUNTRY=[$3], CA_STATE=[$2], CA_COUNTY=[$1], $f4=[EXPLICIT_CAST($14)], $f5=[EXPLICIT_CAST($15)], $f6=[EXPLICIT_CAST($17)], $f7=[EXPLICIT_CAST($16)], $f8=[EXPLICIT_CAST($18)], $f9=[EXPLICIT_CAST($8)], $f10=[EXPLICIT_CAST($22)])
       ImpalaJoinRel(condition=[=($11, $5)], joinType=[inner])
         ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
-          ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7], ca_state=[$8], ca_country=[$10])
-            ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'IL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KS':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+          ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'IL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KS':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7], ca_state=[$8], ca_country=[$10])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
           ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-            ImpalaProjectRel(cd_demo_sk=[$0])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
-            ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4], c_birth_year=[$13])
-              ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[3, 6, 7, 8, 11, 12]), IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($4))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
+            ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$1], c_current_addr_sk=[$2], c_birth_year=[$4])
+              ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[3, 6, 7, 8, 11, 12]), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4], c_birth_month=[$12], c_birth_year=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaJoinRel(condition=[=($1, $10)], joinType=[inner])
             ImpalaJoinRel(condition=[=($8, $9)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_net_profit=[$32], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($33), IS NOT NULL($14))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0), IS NOT NULL($8), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_net_profit=[$32], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-            ImpalaProjectRel(cd_demo_sk=[$0], cd_dep_count=[$6])
-              ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($3, _UTF-8'Primary'), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaProjectRel(cd_demo_sk=[$0], cd_dep_count=[$3])
+              ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'Primary'), IS NOT NULL($0))])
+                ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_education_status=[$3], cd_dep_count=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
 F09:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.52MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1146] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
@@ -615,31 +621,34 @@ ImpalaSortRel(sort0=[$1], sort1=[$2], sort2=[$3], sort3=[$0], dir0=[ASC], dir1=[
     ImpalaProjectRel(I_ITEM_ID=[$10], CA_COUNTRY=[$3], CA_STATE=[$2], CA_COUNTY=[$1], $f4=[EXPLICIT_CAST($14)], $f5=[EXPLICIT_CAST($15)], $f6=[EXPLICIT_CAST($17)], $f7=[EXPLICIT_CAST($16)], $f8=[EXPLICIT_CAST($18)], $f9=[EXPLICIT_CAST($8)], $f10=[EXPLICIT_CAST($22)])
       ImpalaJoinRel(condition=[=($11, $5)], joinType=[inner])
         ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
-          ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7], ca_state=[$8], ca_country=[$10])
-            ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'IL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KS':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+          ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[_UTF-8'GA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'IL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'KS':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7], ca_state=[$8], ca_country=[$10])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
           ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-            ImpalaProjectRel(cd_demo_sk=[$0])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
-            ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4], c_birth_year=[$13])
-              ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[3, 6, 7, 8, 11, 12]), IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($4))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
+            ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$1], c_current_addr_sk=[$2], c_birth_year=[$4])
+              ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[3, 6, 7, 8, 11, 12]), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4], c_birth_month=[$12], c_birth_year=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaJoinRel(condition=[=($1, $10)], joinType=[inner])
             ImpalaJoinRel(condition=[=($8, $9)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_net_profit=[$32], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($33), IS NOT NULL($14))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0), IS NOT NULL($8), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_net_profit=[$32], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 1999), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-            ImpalaProjectRel(cd_demo_sk=[$0], cd_dep_count=[$6])
-              ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($3, _UTF-8'Primary'), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                ImpalaFilterRel(condition=[AND(=($1, 1999), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaProjectRel(cd_demo_sk=[$0], cd_dep_count=[$3])
+              ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'Primary'), IS NOT NULL($0))])
+                ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_education_status=[$3], cd_dep_count=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
 F10:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.52MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1146] cpu-comparison-result=240 [max(1 (self) vs 240 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q19.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q19.test
index 4103b60dd..be554db43 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q19.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q19.test
@@ -33,27 +33,29 @@ ImpalaSortRel(sort0=[$4], sort1=[$1], sort2=[$0], sort3=[$2], sort4=[$3], dir0=[
       ImpalaProjectRel(BRAND=[$14], BRAND_ID=[$13], I_MANUFACT_ID=[$15], I_MANUFACT=[$16], ss_ext_sales_price=[$7])
         ImpalaJoinRel(condition=[=($4, $12)], joinType=[inner])
           ImpalaJoinRel(condition=[AND(<>(SUBSTR($1, 1:BIGINT, 5:BIGINT), SUBSTR($11, 1:BIGINT, 5:BIGINT)), =($3, $0))], joinType=[inner])
-            ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
             ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-              ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaJoinRel(condition=[=($2, $6)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($5, $4)], joinType=[inner])
-                  ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2))])
+                    ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($8, 12), =($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(s_store_sk=[$0], s_zip=[$25])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(=($2, 12), =($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(s_store_sk=[$0], s_zip=[$25])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
-          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13], i_manufact=[$14])
-            ImpalaFilterRel(condition=[AND(=($20, 26), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$1], i_brand=[$2], i_manufact_id=[$3], i_manufact=[$4])
+            ImpalaFilterRel(condition=[AND(=($5, 26), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13], i_manufact=[$14], i_manager_id=[$20])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=2.07GB mem-reservation=143.31MB thread-reservation=1 runtime-filters-memory=35.00MB
 |  max-parallelism=1 segment-costs=[680363207, 3746309, 500]
@@ -201,27 +203,29 @@ ImpalaSortRel(sort0=[$4], sort1=[$1], sort2=[$0], sort3=[$2], sort4=[$3], dir0=[
       ImpalaProjectRel(BRAND=[$14], BRAND_ID=[$13], I_MANUFACT_ID=[$15], I_MANUFACT=[$16], ss_ext_sales_price=[$7])
         ImpalaJoinRel(condition=[=($4, $12)], joinType=[inner])
           ImpalaJoinRel(condition=[AND(<>(SUBSTR($1, 1:BIGINT, 5:BIGINT), SUBSTR($11, 1:BIGINT, 5:BIGINT)), =($3, $0))], joinType=[inner])
-            ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
             ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-              ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaJoinRel(condition=[=($2, $6)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($5, $4)], joinType=[inner])
-                  ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2))])
+                    ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($8, 12), =($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(s_store_sk=[$0], s_zip=[$25])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(=($2, 12), =($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(s_store_sk=[$0], s_zip=[$25])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
-          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13], i_manufact=[$14])
-            ImpalaFilterRel(condition=[AND(=($20, 26), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$1], i_brand=[$2], i_manufact_id=[$3], i_manufact=[$4])
+            ImpalaFilterRel(condition=[AND(=($5, 26), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13], i_manufact=[$14], i_manager_id=[$20])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F07:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.08MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[540] cpu-comparison-result=76 [max(1 (self) vs 76 (sum children))]
@@ -481,27 +485,29 @@ ImpalaSortRel(sort0=[$4], sort1=[$1], sort2=[$0], sort3=[$2], sort4=[$3], dir0=[
       ImpalaProjectRel(BRAND=[$14], BRAND_ID=[$13], I_MANUFACT_ID=[$15], I_MANUFACT=[$16], ss_ext_sales_price=[$7])
         ImpalaJoinRel(condition=[=($4, $12)], joinType=[inner])
           ImpalaJoinRel(condition=[AND(<>(SUBSTR($1, 1:BIGINT, 5:BIGINT), SUBSTR($11, 1:BIGINT, 5:BIGINT)), =($3, $0))], joinType=[inner])
-            ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(ca_address_sk=[$0], ca_zip=[$9])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
             ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-              ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaJoinRel(condition=[=($2, $6)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($5, $4)], joinType=[inner])
-                  ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2))])
+                    ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($8, 12), =($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(s_store_sk=[$0], s_zip=[$25])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[AND(=($2, 12), =($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(s_store_sk=[$0], s_zip=[$25])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
-          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13], i_manufact=[$14])
-            ImpalaFilterRel(condition=[AND(=($20, 26), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$1], i_brand=[$2], i_manufact_id=[$3], i_manufact=[$4])
+            ImpalaFilterRel(condition=[AND(=($5, 26), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_brand_id=[$7], i_brand=[$8], i_manufact_id=[$13], i_manufact=[$14], i_manager_id=[$20])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F07:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.08MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[540] cpu-comparison-result=76 [max(1 (self) vs 76 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q20.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q20.test
index 1e33f12fe..2c55800a6 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q20.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q20.test
@@ -38,14 +38,15 @@ ImpalaSortRel(sort0=[$2], sort1=[$3], sort2=[$0], sort3=[$1], sort4=[$6], dir0=[
       ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CATEGORY=[$9], I_CLASS=[$8], I_CURRENT_PRICE=[$7], cs_ext_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-05-08:DATE..1998-06-07:DATE]]:DATE), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
-            ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Home':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jewelry':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-05-08:DATE..1998-06-07:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Home':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jewelry':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.32GB mem-reservation=76.19MB thread-reservation=1 runtime-filters-memory=2.00MB
@@ -146,14 +147,15 @@ ImpalaSortRel(sort0=[$2], sort1=[$3], sort2=[$0], sort3=[$1], sort4=[$6], dir0=[
       ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CATEGORY=[$9], I_CLASS=[$8], I_CURRENT_PRICE=[$7], cs_ext_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-05-08:DATE..1998-06-07:DATE]]:DATE), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
-            ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Home':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jewelry':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-05-08:DATE..1998-06-07:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Home':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jewelry':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F05:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.22MB mem-reservation=4.00MB thread-reservation=1
@@ -322,14 +324,15 @@ ImpalaSortRel(sort0=[$2], sort1=[$3], sort2=[$0], sort3=[$1], sort4=[$6], dir0=[
       ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CATEGORY=[$9], I_CLASS=[$8], I_CURRENT_PRICE=[$7], cs_ext_sales_price=[$1])
         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-            ImpalaProjectRel(cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-05-08:DATE..1998-06-07:DATE]]:DATE), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
-            ImpalaFilterRel(condition=[AND(SEARCH($12, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Home':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jewelry':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-05-08:DATE..1998-06-07:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[_UTF-8'Books':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Home':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jewelry':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_class=[$10], i_category=[$12])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F05:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.22MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q21.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q21.test
index d1f995ee1..b3d8b9ca4 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q21.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q21.test
@@ -42,13 +42,14 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0), IS NOT NULL($3))])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
               ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-                ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[0.99:DECIMAL(3, 2)..1.49:DECIMAL(3, 2)]]:DECIMAL(3, 2)), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
-            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-04-22:DATE..2000-06-21:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[0.99:DECIMAL(3, 2)..1.49:DECIMAL(3, 2)]]:DECIMAL(3, 2)), IS NOT NULL($0))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_current_price=[$5])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-04-22:DATE..2000-06-21:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(w_warehouse_sk=[$0], w_warehouse_name=[$2])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(w_warehouse_sk=[$0], w_warehouse_name=[$2])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, warehouse]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=338.11MB mem-reservation=44.00MB thread-reservation=1 runtime-filters-memory=3.00MB
@@ -160,13 +161,14 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0), IS NOT NULL($3))])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
               ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-                ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[0.99:DECIMAL(3, 2)..1.49:DECIMAL(3, 2)]]:DECIMAL(3, 2)), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
-            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-04-22:DATE..2000-06-21:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[0.99:DECIMAL(3, 2)..1.49:DECIMAL(3, 2)]]:DECIMAL(3, 2)), IS NOT NULL($0))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_current_price=[$5])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-04-22:DATE..2000-06-21:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(w_warehouse_sk=[$0], w_warehouse_name=[$2])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(w_warehouse_sk=[$0], w_warehouse_name=[$2])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, warehouse]])
 F05:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.15MB mem-reservation=4.00MB thread-reservation=1
@@ -355,13 +357,14 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
               ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0), IS NOT NULL($3))])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
               ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-                ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[0.99:DECIMAL(3, 2)..1.49:DECIMAL(3, 2)]]:DECIMAL(3, 2)), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
-            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2000-04-22:DATE..2000-06-21:DATE]]:DATE), IS NOT NULL($0))])
+                ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[0.99:DECIMAL(3, 2)..1.49:DECIMAL(3, 2)]]:DECIMAL(3, 2)), IS NOT NULL($0))])
+                  ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_current_price=[$5])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2000-04-22:DATE..2000-06-21:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(w_warehouse_sk=[$0], w_warehouse_name=[$2])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(w_warehouse_sk=[$0], w_warehouse_name=[$2])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, warehouse]])
 F05:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.15MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q22.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q22.test
index 0a7cb5deb..e3f21e6d7 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q22.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q22.test
@@ -25,14 +25,15 @@ ImpalaSortRel(sort0=[$4], sort1=[$0], sort2=[$1], sort3=[$2], sort4=[$3], dir0=[
     ImpalaProjectRel(I_PRODUCT_NAME=[$8], I_BRAND=[$5], I_CLASS=[$6], I_CATEGORY=[$7], cast_inv_quantity_on_hand=[CAST($1):BIGINT])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+            ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1199..1210]]), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-        ImpalaProjectRel(i_item_sk=[$0], i_brand=[$8], i_class=[$10], i_category=[$12], i_product_name=[$21])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1199..1210]]), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand=[$8], i_class=[$10], i_category=[$12], i_product_name=[$21])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=50.10GB mem-reservation=176.12MB thread-reservation=1 runtime-filters-memory=2.00MB
@@ -137,14 +138,15 @@ ImpalaSortRel(sort0=[$4], sort1=[$0], sort2=[$1], sort3=[$2], sort4=[$3], dir0=[
     ImpalaProjectRel(I_PRODUCT_NAME=[$8], I_BRAND=[$5], I_CLASS=[$6], I_CATEGORY=[$7], cast_inv_quantity_on_hand=[CAST($1):BIGINT])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+            ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1199..1210]]), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-        ImpalaProjectRel(i_item_sk=[$0], i_brand=[$8], i_class=[$10], i_category=[$12], i_product_name=[$21])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1199..1210]]), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand=[$8], i_class=[$10], i_category=[$12], i_product_name=[$21])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F04:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.40MB mem-reservation=4.00MB thread-reservation=1
@@ -322,14 +324,15 @@ ImpalaSortRel(sort0=[$4], sort1=[$0], sort2=[$1], sort3=[$2], sort4=[$3], dir0=[
     ImpalaProjectRel(I_PRODUCT_NAME=[$8], I_BRAND=[$5], I_CLASS=[$6], I_CATEGORY=[$7], cast_inv_quantity_on_hand=[CAST($1):BIGINT])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-          ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
-            ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0))])
+          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+            ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1199..1210]]), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-        ImpalaProjectRel(i_item_sk=[$0], i_brand=[$8], i_class=[$10], i_category=[$12], i_product_name=[$21])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1199..1210]]), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_month_seq=[$3])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_brand=[$8], i_class=[$10], i_category=[$12], i_product_name=[$21])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F04:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.40MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23a.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23a.test
index 06f0f1e7a..d67f34bcd 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23a.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23a.test
@@ -62,11 +62,11 @@ ImpalaSortRel(fetch=[100:TINYINT])
               ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                 ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(c_customer_sk=[$0])
-                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(c_customer_sk=[$0])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -75,23 +75,25 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($14), IS NOT NULL($2))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($1), IS NOT NULL($0))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaAggRel(group=[{0}])
               ImpalaProjectRel(ITEM_SK=[$1])
                 ImpalaFilterRel(condition=[>($3, 4)])
@@ -99,14 +101,15 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
       ImpalaProjectRel(SALES=[*(CAST($5):DECIMAL(10, 0), $6)])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
@@ -115,11 +118,11 @@ ImpalaSortRel(fetch=[100:TINYINT])
               ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                 ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(c_customer_sk=[$0])
-                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(c_customer_sk=[$0])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -128,23 +131,25 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($2), IS NOT NULL($3))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaAggRel(group=[{0}])
               ImpalaProjectRel(ITEM_SK=[$1])
                 ImpalaFilterRel(condition=[>($3, 4)])
@@ -152,14 +157,15 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=53.71GB mem-reservation=289.56MB thread-reservation=1 runtime-filters-memory=70.00MB
@@ -672,11 +678,11 @@ ImpalaSortRel(fetch=[100:TINYINT])
               ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                 ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(c_customer_sk=[$0])
-                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(c_customer_sk=[$0])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -685,23 +691,25 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($14), IS NOT NULL($2))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($1), IS NOT NULL($0))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaAggRel(group=[{0}])
               ImpalaProjectRel(ITEM_SK=[$1])
                 ImpalaFilterRel(condition=[>($3, 4)])
@@ -709,14 +717,15 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
       ImpalaProjectRel(SALES=[*(CAST($5):DECIMAL(10, 0), $6)])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
@@ -725,11 +734,11 @@ ImpalaSortRel(fetch=[100:TINYINT])
               ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                 ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(c_customer_sk=[$0])
-                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(c_customer_sk=[$0])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -738,23 +747,25 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($2), IS NOT NULL($3))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaAggRel(group=[{0}])
               ImpalaProjectRel(ITEM_SK=[$1])
                 ImpalaFilterRel(condition=[>($3, 4)])
@@ -762,14 +773,15 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
@@ -1753,11 +1765,11 @@ ImpalaSortRel(fetch=[100:TINYINT])
               ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                 ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(c_customer_sk=[$0])
-                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(c_customer_sk=[$0])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -1766,23 +1778,25 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($14), IS NOT NULL($2))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($1), IS NOT NULL($0))])
+                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaAggRel(group=[{0}])
               ImpalaProjectRel(ITEM_SK=[$1])
                 ImpalaFilterRel(condition=[>($3, 4)])
@@ -1790,14 +1804,15 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
       ImpalaProjectRel(SALES=[*(CAST($5):DECIMAL(10, 0), $6)])
         ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
@@ -1806,11 +1821,11 @@ ImpalaSortRel(fetch=[100:TINYINT])
               ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                 ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                   ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                    ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                      ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(c_customer_sk=[$0])
-                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaProjectRel(c_customer_sk=[$0])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaFilterRel(condition=[IS NOT NULL($0)])
               ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -1819,23 +1834,25 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                       ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                           ImpalaProjectRel(d_date_sk=[$0])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
             ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-              ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($2), IS NOT NULL($3))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaAggRel(group=[{0}])
               ImpalaProjectRel(ITEM_SK=[$1])
                 ImpalaFilterRel(condition=[>($3, 4)])
@@ -1843,14 +1860,15 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23b.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23b.test
index d604140c8..5b8912548 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23b.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q23b.test
@@ -64,8 +64,8 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
     ImpalaAggRel(group=[{0, 1}], SALES=[SUM($2)])
       ImpalaProjectRel(C_LAST_NAME=[$2], C_FIRST_NAME=[$1], $f2=[*(CAST($8):DECIMAL(10, 0), $9)])
         ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
-          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[>($1, *(0.950000:DECIMAL(10, 6), $2))], joinType=[inner])
@@ -73,11 +73,11 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                   ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(c_customer_sk=[$0])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(c_customer_sk=[$0])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaFilterRel(condition=[IS NOT NULL($0)])
                 ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -86,23 +86,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                              ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaProjectRel(d_date_sk=[$0])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(c_customer_sk=[$0])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(c_customer_sk=[$0])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
               ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33), IS NOT NULL($14))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaAggRel(group=[{0}])
                 ImpalaProjectRel(ITEM_SK=[$1])
                   ImpalaFilterRel(condition=[>($3, 4)])
@@ -110,20 +112,21 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
     ImpalaAggRel(group=[{0, 1}], SALES=[SUM($2)])
       ImpalaProjectRel(C_LAST_NAME=[$2], C_FIRST_NAME=[$1], $f2=[*(CAST($8):DECIMAL(10, 0), $9)])
         ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
-          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[>($1, *(0.950000:DECIMAL(10, 6), $2))], joinType=[inner])
@@ -131,11 +134,11 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                   ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(c_customer_sk=[$0])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(c_customer_sk=[$0])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaFilterRel(condition=[IS NOT NULL($0)])
                 ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -144,23 +147,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                              ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaProjectRel(d_date_sk=[$0])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(c_customer_sk=[$0])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(c_customer_sk=[$0])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
               ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33), IS NOT NULL($2))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($4), IS NOT NULL($0))])
+                  ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaAggRel(group=[{0}])
                 ImpalaProjectRel(ITEM_SK=[$1])
                   ImpalaFilterRel(condition=[>($3, 4)])
@@ -168,14 +173,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=55.60GB mem-reservation=324.56MB thread-reservation=1 runtime-filters-memory=70.00MB
@@ -739,8 +745,8 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
     ImpalaAggRel(group=[{0, 1}], SALES=[SUM($2)])
       ImpalaProjectRel(C_LAST_NAME=[$2], C_FIRST_NAME=[$1], $f2=[*(CAST($8):DECIMAL(10, 0), $9)])
         ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
-          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[>($1, *(0.950000:DECIMAL(10, 6), $2))], joinType=[inner])
@@ -748,11 +754,11 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                   ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(c_customer_sk=[$0])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(c_customer_sk=[$0])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaFilterRel(condition=[IS NOT NULL($0)])
                 ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -761,23 +767,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                              ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaProjectRel(d_date_sk=[$0])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(c_customer_sk=[$0])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(c_customer_sk=[$0])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
               ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33), IS NOT NULL($14))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaAggRel(group=[{0}])
                 ImpalaProjectRel(ITEM_SK=[$1])
                   ImpalaFilterRel(condition=[>($3, 4)])
@@ -785,20 +793,21 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
     ImpalaAggRel(group=[{0, 1}], SALES=[SUM($2)])
       ImpalaProjectRel(C_LAST_NAME=[$2], C_FIRST_NAME=[$1], $f2=[*(CAST($8):DECIMAL(10, 0), $9)])
         ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
-          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[>($1, *(0.950000:DECIMAL(10, 6), $2))], joinType=[inner])
@@ -806,11 +815,11 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                   ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(c_customer_sk=[$0])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(c_customer_sk=[$0])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaFilterRel(condition=[IS NOT NULL($0)])
                 ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -819,23 +828,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                              ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaProjectRel(d_date_sk=[$0])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(c_customer_sk=[$0])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(c_customer_sk=[$0])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
               ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33), IS NOT NULL($2))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($4), IS NOT NULL($0))])
+                  ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaAggRel(group=[{0}])
                 ImpalaProjectRel(ITEM_SK=[$1])
                   ImpalaFilterRel(condition=[>($3, 4)])
@@ -843,14 +854,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F37:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.48MB mem-reservation=4.00MB thread-reservation=1
@@ -1962,8 +1974,8 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
     ImpalaAggRel(group=[{0, 1}], SALES=[SUM($2)])
       ImpalaProjectRel(C_LAST_NAME=[$2], C_FIRST_NAME=[$1], $f2=[*(CAST($8):DECIMAL(10, 0), $9)])
         ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
-          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[>($1, *(0.950000:DECIMAL(10, 6), $2))], joinType=[inner])
@@ -1971,11 +1983,11 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                   ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(c_customer_sk=[$0])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(c_customer_sk=[$0])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaFilterRel(condition=[IS NOT NULL($0)])
                 ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -1984,23 +1996,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                              ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaProjectRel(d_date_sk=[$0])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(c_customer_sk=[$0])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(c_customer_sk=[$0])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
               ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($33), IS NOT NULL($14))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_list_price=[$19], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaAggRel(group=[{0}])
                 ImpalaProjectRel(ITEM_SK=[$1])
                   ImpalaFilterRel(condition=[>($3, 4)])
@@ -2008,20 +2022,21 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
     ImpalaAggRel(group=[{0, 1}], SALES=[SUM($2)])
       ImpalaProjectRel(C_LAST_NAME=[$2], C_FIRST_NAME=[$1], $f2=[*(CAST($8):DECIMAL(10, 0), $9)])
         ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
-          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaJoinRel(condition=[=($4, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[>($1, *(0.950000:DECIMAL(10, 6), $2))], joinType=[inner])
@@ -2029,11 +2044,11 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaAggRel(group=[{0}], SSALES=[SUM($1)])
                   ImpalaProjectRel(C_CUSTOMER_SK=[$3], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                     ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-                      ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
-                        ImpalaFilterRel(condition=[IS NOT NULL($2)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(c_customer_sk=[$0])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(c_customer_sk=[$0])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
               ImpalaFilterRel(condition=[IS NOT NULL($0)])
                 ImpalaAggRel(group=[{}], TPCDS_CMAX=[MAX($0)])
@@ -2042,23 +2057,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(C_CUSTOMER_SK=[$5], $f1=[*(CAST($1):DECIMAL(10, 0), $2)])
                         ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                            ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3))])
+                              ImpalaProjectRel(ss_customer_sk=[$2], ss_quantity=[$9], ss_sales_price=[$12], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                             ImpalaProjectRel(d_date_sk=[$0])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(c_customer_sk=[$0])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(c_customer_sk=[$0])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
             ImpalaJoinRel(condition=[=($0, $6)], joinType=[inner])
               ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33), IS NOT NULL($2))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($4), IS NOT NULL($0))])
+                  ImpalaProjectRel(ws_item_sk=[$2], ws_bill_customer_sk=[$3], ws_quantity=[$17], ws_list_price=[$19], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2000), =($8, 5), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2000), =($2, 5), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaAggRel(group=[{0}])
                 ImpalaProjectRel(ITEM_SK=[$1])
                   ImpalaFilterRel(condition=[>($3, 4)])
@@ -2066,14 +2083,15 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                       ImpalaProjectRel(ITEMDESC=[SUBSTR($5, 1:BIGINT, 30:BIGINT)], ITEM_SK=[$4], SOLDDATE=[$3])
                         ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                           ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                            ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
-                              ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1))])
+                            ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                              ImpalaProjectRel(ss_item_sk=[$1], ss_sold_date_sk=[$22])
                                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
-                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                          ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
-                            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[2000, 2001, 2002, 2003]), IS NOT NULL($0))])
+                                ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_year=[$6])
+                                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                            ImpalaProjectRel(i_item_sk=[$0], i_item_desc=[$4])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F37:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.48MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24a.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24a.test
index 628421ad7..f61d88770 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24a.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24a.test
@@ -66,26 +66,28 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaJoinRel(condition=[AND(=($3, $12), =($4, $21))], joinType=[inner])
                   ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                     ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                      ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                      ImpalaFilterRel(condition=[AND(=($17, _UTF-8'navy'), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$1], i_size=[$2], i_units=[$4], i_manager_id=[$5])
+                      ImpalaFilterRel(condition=[AND(=($3, _UTF-8'navy'), IS NOT NULL($0))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                        ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                        ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                          ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaProjectRel(EXPR$0=[*(0.05:DECIMAL(3, 2), $0)])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], agg#0=[AVG($0)])
@@ -95,26 +97,27 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                   ImpalaJoinRel(condition=[AND(=($3, $13), =($4, $22))], joinType=[inner])
                     ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                       ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                          ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                          ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=68.14GB mem-reservation=269.94MB thread-reservation=1 runtime-filters-memory=10.00MB
 |  max-parallelism=1 segment-costs=[5239599279, 676744, 5485002825, 740255, 40883, 45860]
@@ -417,26 +420,28 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaJoinRel(condition=[AND(=($3, $12), =($4, $21))], joinType=[inner])
                   ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                     ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                      ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                      ImpalaFilterRel(condition=[AND(=($17, _UTF-8'navy'), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$1], i_size=[$2], i_units=[$4], i_manager_id=[$5])
+                      ImpalaFilterRel(condition=[AND(=($3, _UTF-8'navy'), IS NOT NULL($0))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                        ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                        ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                          ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaProjectRel(EXPR$0=[*(0.05:DECIMAL(3, 2), $0)])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], agg#0=[AVG($0)])
@@ -446,26 +451,27 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                   ImpalaJoinRel(condition=[AND(=($3, $13), =($4, $22))], joinType=[inner])
                     ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                       ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                          ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                          ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F19:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.78MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50316] cpu-comparison-result=328 [max(1 (self) vs 328 (sum children))]
@@ -1053,26 +1059,28 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaJoinRel(condition=[AND(=($3, $12), =($4, $21))], joinType=[inner])
                   ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                     ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                      ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                      ImpalaFilterRel(condition=[AND(=($17, _UTF-8'navy'), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$1], i_size=[$2], i_units=[$4], i_manager_id=[$5])
+                      ImpalaFilterRel(condition=[AND(=($3, _UTF-8'navy'), IS NOT NULL($0))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                        ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                        ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                          ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaProjectRel(EXPR$0=[*(0.05:DECIMAL(3, 2), $0)])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], agg#0=[AVG($0)])
@@ -1082,26 +1090,27 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                   ImpalaJoinRel(condition=[AND(=($3, $13), =($4, $22))], joinType=[inner])
                     ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                       ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                          ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                          ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F19:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.78MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50316] cpu-comparison-result=328 [max(1 (self) vs 328 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24b.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24b.test
index 637e2c354..dd87e5b7b 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24b.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q24b.test
@@ -67,26 +67,28 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaJoinRel(condition=[AND(=($3, $12), =($4, $21))], joinType=[inner])
                   ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                     ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                      ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                      ImpalaFilterRel(condition=[AND(=($17, _UTF-8'beige'), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$1], i_size=[$2], i_units=[$4], i_manager_id=[$5])
+                      ImpalaFilterRel(condition=[AND(=($3, _UTF-8'beige'), IS NOT NULL($0))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                        ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                        ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                          ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaProjectRel(EXPR$0=[*(0.05:DECIMAL(3, 2), $0)])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], agg#0=[AVG($0)])
@@ -96,26 +98,27 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                   ImpalaJoinRel(condition=[AND(=($3, $13), =($4, $22))], joinType=[inner])
                     ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                       ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                          ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                          ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=68.14GB mem-reservation=269.94MB thread-reservation=1 runtime-filters-memory=10.00MB
 |  max-parallelism=1 segment-costs=[5239599279, 676744, 5485002825, 740255, 40883, 45860]
@@ -418,26 +421,28 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaJoinRel(condition=[AND(=($3, $12), =($4, $21))], joinType=[inner])
                   ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                     ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                      ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                      ImpalaFilterRel(condition=[AND(=($17, _UTF-8'beige'), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$1], i_size=[$2], i_units=[$4], i_manager_id=[$5])
+                      ImpalaFilterRel(condition=[AND(=($3, _UTF-8'beige'), IS NOT NULL($0))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                        ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                        ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                          ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaProjectRel(EXPR$0=[*(0.05:DECIMAL(3, 2), $0)])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], agg#0=[AVG($0)])
@@ -447,26 +452,27 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                   ImpalaJoinRel(condition=[AND(=($3, $13), =($4, $22))], joinType=[inner])
                     ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                       ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                          ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                          ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F19:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.78MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50316] cpu-comparison-result=328 [max(1 (self) vs 328 (sum children))]
@@ -1054,26 +1060,28 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                 ImpalaJoinRel(condition=[AND(=($3, $12), =($4, $21))], joinType=[inner])
                   ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                     ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                      ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_units=[$18], i_manager_id=[$20])
-                      ImpalaFilterRel(condition=[AND(=($17, _UTF-8'beige'), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$1], i_size=[$2], i_units=[$4], i_manager_id=[$5])
+                      ImpalaFilterRel(condition=[AND(=($3, _UTF-8'beige'), IS NOT NULL($0))])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                    ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                     ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                        ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                      ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                        ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                          ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
       ImpalaProjectRel(EXPR$0=[*(0.05:DECIMAL(3, 2), $0)])
         ImpalaFilterRel(condition=[IS NOT NULL($0)])
           ImpalaAggRel(group=[{}], agg#0=[AVG($0)])
@@ -1083,26 +1091,27 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[
                   ImpalaJoinRel(condition=[AND(=($3, $13), =($4, $22))], joinType=[inner])
                     ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
                       ImpalaJoinRel(condition=[AND(=($5, $1), =($2, $0))], joinType=[inner])
-                        ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(sr_item_sk=[$1], sr_ticket_number=[$8])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
-                        ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($8), IS NOT NULL($6), IS NOT NULL($2))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($3), IS NOT NULL($2), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_paid=[$19])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                      ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
-                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                        ImpalaProjectRel(i_item_sk=[$0], i_current_price=[$5], i_size=[$15], i_color=[$17], i_units=[$18], i_manager_id=[$20])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                     ImpalaJoinRel(condition=[AND(=($1, $5), <>($4, UPPER($8)))], joinType=[inner])
-                      ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($4))])
+                        ImpalaProjectRel(c_customer_sk=[$0], c_current_addr_sk=[$4], c_first_name=[$8], c_last_name=[$9], c_birth_country=[$14])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                       ImpalaJoinRel(condition=[=($7, $2)], joinType=[inner])
-                        ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($9))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8], ca_zip=[$9], ca_country=[$10])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
-                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_state=[$24], s_zip=[$25])
-                          ImpalaFilterRel(condition=[AND(=($10, 10), IS NOT NULL($0), IS NOT NULL($25))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                        ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$1], s_state=[$3], s_zip=[$4])
+                          ImpalaFilterRel(condition=[AND(=($2, 10), IS NOT NULL($0), IS NOT NULL($4))])
+                            ImpalaProjectRel(s_store_sk=[$0], s_store_name=[$5], s_market_id=[$10], s_state=[$24], s_zip=[$25])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F19:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.78MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50316] cpu-comparison-result=328 [max(1 (self) vs 328 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q25.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q25.test
index 4073886c1..bdc8cfa34 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q25.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q25.test
@@ -56,34 +56,37 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
       ImpalaJoinRel(condition=[AND(=($4, $19), =($3, $18), =($6, $20))], joinType=[inner])
         ImpalaJoinRel(condition=[=($10, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($8, 4), =($6, 2002), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(=($2, 4), =($1, 2002), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_net_profit=[$32], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_net_profit=[$32], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..10]]), =($6, 2002), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..10]]), =($1, 2002), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-            ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_net_loss=[$18], sr_returned_date_sk=[$19])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_net_loss=[$18], sr_returned_date_sk=[$19])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..10]]), =($6, 2002), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..10]]), =($1, 2002), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.56GB mem-reservation=164.59MB thread-reservation=1 runtime-filters-memory=55.00MB
 |  max-parallelism=1 segment-costs=[1095871485, 69956182, 700]
@@ -277,34 +280,37 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
       ImpalaJoinRel(condition=[AND(=($4, $19), =($3, $18), =($6, $20))], joinType=[inner])
         ImpalaJoinRel(condition=[=($10, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($8, 4), =($6, 2002), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(=($2, 4), =($1, 2002), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_net_profit=[$32], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_net_profit=[$32], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..10]]), =($6, 2002), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..10]]), =($1, 2002), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-            ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_net_loss=[$18], sr_returned_date_sk=[$19])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_net_loss=[$18], sr_returned_date_sk=[$19])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..10]]), =($6, 2002), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..10]]), =($1, 2002), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F10:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.23MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[771] cpu-comparison-result=166 [max(1 (self) vs 166 (sum children))]
@@ -654,34 +660,37 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
       ImpalaJoinRel(condition=[AND(=($4, $19), =($3, $18), =($6, $20))], joinType=[inner])
         ImpalaJoinRel(condition=[=($10, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($8, 4), =($6, 2002), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(=($2, 4), =($1, 2002), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_net_profit=[$32], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_net_profit=[$32], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..10]]), =($6, 2002), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..10]]), =($1, 2002), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-            ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_net_loss=[$18], sr_returned_date_sk=[$19])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_net_loss=[$18], sr_returned_date_sk=[$19])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..10]]), =($6, 2002), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..10]]), =($1, 2002), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F10:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.23MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[771] cpu-comparison-result=166 [max(1 (self) vs 166 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q26.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q26.test
index dc6ba2c1d..a7bc6f2ad 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q26.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q26.test
@@ -27,24 +27,27 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaAggRel(group=[{0}], AGG1=[AVG($4)], AGG2=[AVG($1)], AGG3=[AVG($2)], AGG4=[AVG($3)])
     ImpalaProjectRel(I_ITEM_ID=[$1], cs_list_price=[$6], cs_coupon_amt=[$8], cs_sales_price=[$7], cast_cs_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($7, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_promo_sk=[$15], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33), IS NOT NULL($14), IS NOT NULL($15))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($1), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_promo_sk=[$15], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'M'), =($3, _UTF-8'2 yr Degree'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(p_promo_sk=[$0])
-              ImpalaFilterRel(condition=[AND(OR(=($9, _UTF-8'N'), =($14, _UTF-8'N')), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
+              ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'N'), =($2, _UTF-8'N')), IS NOT NULL($0))])
+                ImpalaProjectRel(p_promo_sk=[$0], p_channel_email=[$9], p_channel_event=[$14])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($6, 2002), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($1, 2002), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=130.38MB mem-reservation=67.62MB thread-reservation=1 runtime-filters-memory=4.00MB
 |  max-parallelism=1 segment-costs=[639053960, 1831104, 500]
@@ -168,24 +171,27 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaAggRel(group=[{0}], AGG1=[AVG($4)], AGG2=[AVG($1)], AGG3=[AVG($2)], AGG4=[AVG($3)])
     ImpalaProjectRel(I_ITEM_ID=[$1], cs_list_price=[$6], cs_coupon_amt=[$8], cs_sales_price=[$7], cast_cs_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($7, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_promo_sk=[$15], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33), IS NOT NULL($14), IS NOT NULL($15))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($1), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_promo_sk=[$15], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'M'), =($3, _UTF-8'2 yr Degree'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(p_promo_sk=[$0])
-              ImpalaFilterRel(condition=[AND(OR(=($9, _UTF-8'N'), =($14, _UTF-8'N')), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
+              ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'N'), =($2, _UTF-8'N')), IS NOT NULL($0))])
+                ImpalaProjectRel(p_promo_sk=[$0], p_channel_email=[$9], p_channel_event=[$14])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($6, 2002), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($1, 2002), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[537] cpu-comparison-result=70 [max(1 (self) vs 70 (sum children))]
@@ -403,24 +409,27 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
   ImpalaAggRel(group=[{0}], AGG1=[AVG($4)], AGG2=[AVG($1)], AGG3=[AVG($2)], AGG4=[AVG($3)])
     ImpalaProjectRel(I_ITEM_ID=[$1], cs_list_price=[$6], cs_coupon_amt=[$8], cs_sales_price=[$7], cast_cs_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($7, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($2, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($0, $8)], joinType=[inner])
-              ImpalaProjectRel(cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_promo_sk=[$15], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33), IS NOT NULL($14), IS NOT NULL($15))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7), IS NOT NULL($1), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_bill_cdemo_sk=[$3], cs_item_sk=[$14], cs_promo_sk=[$15], cs_quantity=[$17], cs_list_price=[$19], cs_sales_price=[$20], cs_coupon_amt=[$26], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'M'), =($3, _UTF-8'2 yr Degree'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(p_promo_sk=[$0])
-              ImpalaFilterRel(condition=[AND(OR(=($9, _UTF-8'N'), =($14, _UTF-8'N')), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
+              ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'N'), =($2, _UTF-8'N')), IS NOT NULL($0))])
+                ImpalaProjectRel(p_promo_sk=[$0], p_channel_email=[$9], p_channel_event=[$14])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, promotion]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(=($6, 2002), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(=($1, 2002), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[537] cpu-comparison-result=70 [max(1 (self) vs 70 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q27.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q27.test
index 1a79cbbd0..e08f932b0 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q27.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q27.test
@@ -29,23 +29,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
   ImpalaAggRel(group=[{0, 1}], groups=[[{0, 1}, {0}, {}]], G_STATE=[GROUPING($1)], AGG1=[AVG($5)], AGG2=[AVG($2)], AGG3=[AVG($3)], AGG4=[AVG($4)])
     ImpalaProjectRel(I_ITEM_ID=[$1], S_STATE=[$13], ss_list_price=[$6], ss_coupon_amt=[$8], ss_sales_price=[$7], cast_ss_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($2, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($7, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($1, $8)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_store_sk=[$6], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($22), IS NOT NULL($6), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($7), IS NOT NULL($2), IS NOT NULL($0))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_store_sk=[$6], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'S'), =($3, _UTF-8'Advanced Degree'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
-            ImpalaFilterRel(condition=[AND(SEARCH($24, Sarg[_UTF-8'AL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WA':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'AL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WA':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=934.54MB mem-reservation=120.81MB thread-reservation=1 runtime-filters-memory=4.00MB
@@ -185,23 +187,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
   ImpalaAggRel(group=[{0, 1}], groups=[[{0, 1}, {0}, {}]], G_STATE=[GROUPING($1)], AGG1=[AVG($5)], AGG2=[AVG($2)], AGG3=[AVG($3)], AGG4=[AVG($4)])
     ImpalaProjectRel(I_ITEM_ID=[$1], S_STATE=[$13], ss_list_price=[$6], ss_coupon_amt=[$8], ss_sales_price=[$7], cast_ss_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($2, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($7, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($1, $8)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_store_sk=[$6], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($22), IS NOT NULL($6), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($7), IS NOT NULL($2), IS NOT NULL($0))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_store_sk=[$6], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'S'), =($3, _UTF-8'Advanced Degree'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
-            ImpalaFilterRel(condition=[AND(SEARCH($24, Sarg[_UTF-8'AL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WA':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'AL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WA':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
@@ -442,23 +446,25 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], dir0=[ASC], dir1=[ASC], fetch=[100:TINYINT
   ImpalaAggRel(group=[{0, 1}], groups=[[{0, 1}, {0}, {}]], G_STATE=[GROUPING($1)], AGG1=[AVG($5)], AGG2=[AVG($2)], AGG3=[AVG($3)], AGG4=[AVG($4)])
     ImpalaProjectRel(I_ITEM_ID=[$1], S_STATE=[$13], ss_list_price=[$6], ss_coupon_amt=[$8], ss_sales_price=[$7], cast_ss_quantity=[CAST($5):BIGINT])
       ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-        ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
-          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaJoinRel(condition=[=($2, $10)], joinType=[inner])
           ImpalaJoinRel(condition=[=($7, $9)], joinType=[inner])
             ImpalaJoinRel(condition=[=($1, $8)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_store_sk=[$6], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($22), IS NOT NULL($6), IS NOT NULL($1))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($7), IS NOT NULL($2), IS NOT NULL($0))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_cdemo_sk=[$3], ss_store_sk=[$6], ss_quantity=[$9], ss_list_price=[$11], ss_sales_price=[$12], ss_coupon_amt=[$18], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(cd_demo_sk=[$0])
                 ImpalaFilterRel(condition=[AND(=($1, _UTF-8'F'), =($2, _UTF-8'S'), =($3, _UTF-8'Advanced Degree'), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
+                  ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_education_status=[$3])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
-            ImpalaFilterRel(condition=[AND(SEARCH($24, Sarg[_UTF-8'AL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WA':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+              ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'AL':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'LA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TX':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WA':VARCHAR(2147483647) CHARACTER SET "UTF-8"]:VARCHAR(2147483647) CHARACTER SET "UTF-8"), IS NOT NULL($0))])
+            ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q28.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q28.test
index c5dd56406..2dbe9e0f7 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q28.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q28.test
@@ -63,29 +63,35 @@ ImpalaSortRel(fetch=[100:TINYINT])
           ImpalaJoinRel(condition=[true], joinType=[inner])
             ImpalaJoinRel(condition=[true], joinType=[inner])
               ImpalaAggRel(group=[{}], B1_LP=[AVG($0)], B1_CNT=[COUNT($0)], B1_CNTD=[COUNT(DISTINCT $0)])
-                ImpalaProjectRel(ss_list_price=[$11])
-                  ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[0..5]]), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), >=(CAST($18):DECIMAL(12, 2), 4483.00), >=($10, 24.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), >=(CAST($18):DECIMAL(12, 2), 4483.00), <=($10, 44.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), <=(CAST($18):DECIMAL(12, 2), 5483.00), >=($10, 24.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), <=(CAST($18):DECIMAL(12, 2), 5483.00), <=($10, 44.00)), OR(<=(CAST($11):DECIMAL(12, 2 [...]
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                ImpalaProjectRel(ss_list_price=[$2])
+                  ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[0..5]]), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), >=(CAST($3):DECIMAL(12, 2), 4483.00), >=($1, 24.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), >=(CAST($3):DECIMAL(12, 2), 4483.00), <=($1, 44.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), <=(CAST($3):DECIMAL(12, 2), 5483.00), >=($1, 24.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), <=(CAST($3):DECIMAL(12, 2), 5483.00), <=($1, 44.00)), OR(<=(CAST($2):DECIMAL(12, 2), 199.00), > [...]
+                    ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaAggRel(group=[{}], B6_LP=[AVG($0)], B6_CNT=[COUNT($0)], B6_CNTD=[COUNT(DISTINCT $0)])
-                ImpalaProjectRel(ss_list_price=[$11])
-                  ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[26..30]]), OR(>=($11, 49.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), >=($10, 52.00)), OR(>=($11, 49.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), <=($10, 72.00)), OR(>=($11, 49.00), <=(CAST($18):DECIMAL(12, 2), 3950.00), >=($10, 52.00)), OR(>=($11, 49.00), <=(CAST($18):DECIMAL(12, 2), 3950.00), <=($10, 72.00)), OR(<=($11, 59.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), >=($10, 52.00)), OR(<=($11, 59.00), >=(CAST($18):DECIMAL( [...]
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                ImpalaProjectRel(ss_list_price=[$2])
+                  ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[26..30]]), OR(>=($2, 49.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), >=($1, 52.00)), OR(>=($2, 49.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), <=($1, 72.00)), OR(>=($2, 49.00), <=(CAST($3):DECIMAL(12, 2), 3950.00), >=($1, 52.00)), OR(>=($2, 49.00), <=(CAST($3):DECIMAL(12, 2), 3950.00), <=($1, 72.00)), OR(<=($2, 59.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), >=($1, 52.00)), OR(<=($2, 59.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), [...]
+                    ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
             ImpalaAggRel(group=[{}], B5_LP=[AVG($0)], B5_CNT=[COUNT($0)], B5_CNTD=[COUNT(DISTINCT $0)])
-              ImpalaProjectRel(ss_list_price=[$11])
-                ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[21..25]]), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), >=(CAST($18):DECIMAL(12, 2), 17430.00), >=($10, 57.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), >=(CAST($18):DECIMAL(12, 2), 17430.00), <=($10, 77.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), <=(CAST($18):DECIMAL(12, 2), 18430.00), >=($10, 57.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), <=(CAST($18):DECIMAL(12, 2), 18430.00), <=($10, 77.00)), OR(<=(CAST($11):DECIMAL(1 [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+              ImpalaProjectRel(ss_list_price=[$2])
+                ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[21..25]]), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), >=(CAST($3):DECIMAL(12, 2), 17430.00), >=($1, 57.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), >=(CAST($3):DECIMAL(12, 2), 17430.00), <=($1, 77.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), <=(CAST($3):DECIMAL(12, 2), 18430.00), >=($1, 57.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), <=(CAST($3):DECIMAL(12, 2), 18430.00), <=($1, 77.00)), OR(<=(CAST($2):DECIMAL(12, 2), 190.00 [...]
+                  ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaAggRel(group=[{}], B4_LP=[AVG($0)], B4_CNT=[COUNT($0)], B4_CNTD=[COUNT(DISTINCT $0)])
-            ImpalaProjectRel(ss_list_price=[$11])
-              ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[16..20]]), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), >=(CAST($18):DECIMAL(12, 2), 4905.00), >=($10, 27.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), >=(CAST($18):DECIMAL(12, 2), 4905.00), <=($10, 47.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), <=(CAST($18):DECIMAL(12, 2), 5905.00), >=($10, 27.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), <=(CAST($18):DECIMAL(12, 2), 5905.00), <=($10, 47.00)), OR(<=(CAST($11):DECIMAL(12, 2), [...]
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+            ImpalaProjectRel(ss_list_price=[$2])
+              ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[16..20]]), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), >=(CAST($3):DECIMAL(12, 2), 4905.00), >=($1, 27.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), >=(CAST($3):DECIMAL(12, 2), 4905.00), <=($1, 47.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), <=(CAST($3):DECIMAL(12, 2), 5905.00), >=($1, 27.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), <=(CAST($3):DECIMAL(12, 2), 5905.00), <=($1, 47.00)), OR(<=(CAST($2):DECIMAL(12, 2), 145.00), >=( [...]
+                ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
         ImpalaAggRel(group=[{}], B3_LP=[AVG($0)], B3_CNT=[COUNT($0)], B3_CNTD=[COUNT(DISTINCT $0)])
-          ImpalaProjectRel(ss_list_price=[$11])
-            ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[11..15]]), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), >=(CAST($18):DECIMAL(12, 2), 13456.00), >=($10, 31.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), >=(CAST($18):DECIMAL(12, 2), 13456.00), <=($10, 51.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), <=(CAST($18):DECIMAL(12, 2), 14456.00), >=($10, 31.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), <=(CAST($18):DECIMAL(12, 2), 14456.00), <=($10, 51.00)), OR(<=(CAST($11):DECIMAL(12, 2 [...]
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+          ImpalaProjectRel(ss_list_price=[$2])
+            ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[11..15]]), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), >=(CAST($3):DECIMAL(12, 2), 13456.00), >=($1, 31.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), >=(CAST($3):DECIMAL(12, 2), 13456.00), <=($1, 51.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), <=(CAST($3):DECIMAL(12, 2), 14456.00), >=($1, 31.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), <=(CAST($3):DECIMAL(12, 2), 14456.00), <=($1, 51.00)), OR(<=(CAST($2):DECIMAL(12, 2), 193.00), > [...]
+              ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
       ImpalaAggRel(group=[{}], B2_LP=[AVG($0)], B2_CNT=[COUNT($0)], B2_CNTD=[COUNT(DISTINCT $0)])
-        ImpalaProjectRel(ss_list_price=[$11])
-          ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[6..10]]), OR(>=($11, 71.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), >=($10, 38.00)), OR(>=($11, 71.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), <=($10, 58.00)), OR(>=($11, 71.00), <=(CAST($18):DECIMAL(12, 2), 15775.00), >=($10, 38.00)), OR(>=($11, 71.00), <=(CAST($18):DECIMAL(12, 2), 15775.00), <=($10, 58.00)), OR(<=($11, 81.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), >=($10, 38.00)), OR(<=($11, 81.00), >=(CAST($18):DECIMAL(12,  [...]
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+        ImpalaProjectRel(ss_list_price=[$2])
+          ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[6..10]]), OR(>=($2, 71.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), >=($1, 38.00)), OR(>=($2, 71.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), <=($1, 58.00)), OR(>=($2, 71.00), <=(CAST($3):DECIMAL(12, 2), 15775.00), >=($1, 38.00)), OR(>=($2, 71.00), <=(CAST($3):DECIMAL(12, 2), 15775.00), <=($1, 58.00)), OR(<=($2, 81.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), >=($1, 38.00)), OR(<=($2, 81.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), <= [...]
+            ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=156.00MB mem-reservation=59.62MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[4731713303, 4252, 4731713303, 4252, 4731713303, 4252, 4731713303, 4252, 4731713303, 4252, 4731713303, 4252, 18]
@@ -291,29 +297,35 @@ ImpalaSortRel(fetch=[100:TINYINT])
           ImpalaJoinRel(condition=[true], joinType=[inner])
             ImpalaJoinRel(condition=[true], joinType=[inner])
               ImpalaAggRel(group=[{}], B1_LP=[AVG($0)], B1_CNT=[COUNT($0)], B1_CNTD=[COUNT(DISTINCT $0)])
-                ImpalaProjectRel(ss_list_price=[$11])
-                  ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[0..5]]), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), >=(CAST($18):DECIMAL(12, 2), 4483.00), >=($10, 24.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), >=(CAST($18):DECIMAL(12, 2), 4483.00), <=($10, 44.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), <=(CAST($18):DECIMAL(12, 2), 5483.00), >=($10, 24.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), <=(CAST($18):DECIMAL(12, 2), 5483.00), <=($10, 44.00)), OR(<=(CAST($11):DECIMAL(12, 2 [...]
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                ImpalaProjectRel(ss_list_price=[$2])
+                  ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[0..5]]), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), >=(CAST($3):DECIMAL(12, 2), 4483.00), >=($1, 24.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), >=(CAST($3):DECIMAL(12, 2), 4483.00), <=($1, 44.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), <=(CAST($3):DECIMAL(12, 2), 5483.00), >=($1, 24.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), <=(CAST($3):DECIMAL(12, 2), 5483.00), <=($1, 44.00)), OR(<=(CAST($2):DECIMAL(12, 2), 199.00), > [...]
+                    ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaAggRel(group=[{}], B6_LP=[AVG($0)], B6_CNT=[COUNT($0)], B6_CNTD=[COUNT(DISTINCT $0)])
-                ImpalaProjectRel(ss_list_price=[$11])
-                  ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[26..30]]), OR(>=($11, 49.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), >=($10, 52.00)), OR(>=($11, 49.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), <=($10, 72.00)), OR(>=($11, 49.00), <=(CAST($18):DECIMAL(12, 2), 3950.00), >=($10, 52.00)), OR(>=($11, 49.00), <=(CAST($18):DECIMAL(12, 2), 3950.00), <=($10, 72.00)), OR(<=($11, 59.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), >=($10, 52.00)), OR(<=($11, 59.00), >=(CAST($18):DECIMAL( [...]
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                ImpalaProjectRel(ss_list_price=[$2])
+                  ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[26..30]]), OR(>=($2, 49.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), >=($1, 52.00)), OR(>=($2, 49.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), <=($1, 72.00)), OR(>=($2, 49.00), <=(CAST($3):DECIMAL(12, 2), 3950.00), >=($1, 52.00)), OR(>=($2, 49.00), <=(CAST($3):DECIMAL(12, 2), 3950.00), <=($1, 72.00)), OR(<=($2, 59.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), >=($1, 52.00)), OR(<=($2, 59.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), [...]
+                    ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
             ImpalaAggRel(group=[{}], B5_LP=[AVG($0)], B5_CNT=[COUNT($0)], B5_CNTD=[COUNT(DISTINCT $0)])
-              ImpalaProjectRel(ss_list_price=[$11])
-                ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[21..25]]), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), >=(CAST($18):DECIMAL(12, 2), 17430.00), >=($10, 57.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), >=(CAST($18):DECIMAL(12, 2), 17430.00), <=($10, 77.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), <=(CAST($18):DECIMAL(12, 2), 18430.00), >=($10, 57.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), <=(CAST($18):DECIMAL(12, 2), 18430.00), <=($10, 77.00)), OR(<=(CAST($11):DECIMAL(1 [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+              ImpalaProjectRel(ss_list_price=[$2])
+                ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[21..25]]), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), >=(CAST($3):DECIMAL(12, 2), 17430.00), >=($1, 57.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), >=(CAST($3):DECIMAL(12, 2), 17430.00), <=($1, 77.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), <=(CAST($3):DECIMAL(12, 2), 18430.00), >=($1, 57.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), <=(CAST($3):DECIMAL(12, 2), 18430.00), <=($1, 77.00)), OR(<=(CAST($2):DECIMAL(12, 2), 190.00 [...]
+                  ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaAggRel(group=[{}], B4_LP=[AVG($0)], B4_CNT=[COUNT($0)], B4_CNTD=[COUNT(DISTINCT $0)])
-            ImpalaProjectRel(ss_list_price=[$11])
-              ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[16..20]]), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), >=(CAST($18):DECIMAL(12, 2), 4905.00), >=($10, 27.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), >=(CAST($18):DECIMAL(12, 2), 4905.00), <=($10, 47.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), <=(CAST($18):DECIMAL(12, 2), 5905.00), >=($10, 27.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), <=(CAST($18):DECIMAL(12, 2), 5905.00), <=($10, 47.00)), OR(<=(CAST($11):DECIMAL(12, 2), [...]
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+            ImpalaProjectRel(ss_list_price=[$2])
+              ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[16..20]]), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), >=(CAST($3):DECIMAL(12, 2), 4905.00), >=($1, 27.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), >=(CAST($3):DECIMAL(12, 2), 4905.00), <=($1, 47.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), <=(CAST($3):DECIMAL(12, 2), 5905.00), >=($1, 27.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), <=(CAST($3):DECIMAL(12, 2), 5905.00), <=($1, 47.00)), OR(<=(CAST($2):DECIMAL(12, 2), 145.00), >=( [...]
+                ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
         ImpalaAggRel(group=[{}], B3_LP=[AVG($0)], B3_CNT=[COUNT($0)], B3_CNTD=[COUNT(DISTINCT $0)])
-          ImpalaProjectRel(ss_list_price=[$11])
-            ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[11..15]]), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), >=(CAST($18):DECIMAL(12, 2), 13456.00), >=($10, 31.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), >=(CAST($18):DECIMAL(12, 2), 13456.00), <=($10, 51.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), <=(CAST($18):DECIMAL(12, 2), 14456.00), >=($10, 31.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), <=(CAST($18):DECIMAL(12, 2), 14456.00), <=($10, 51.00)), OR(<=(CAST($11):DECIMAL(12, 2 [...]
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+          ImpalaProjectRel(ss_list_price=[$2])
+            ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[11..15]]), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), >=(CAST($3):DECIMAL(12, 2), 13456.00), >=($1, 31.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), >=(CAST($3):DECIMAL(12, 2), 13456.00), <=($1, 51.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), <=(CAST($3):DECIMAL(12, 2), 14456.00), >=($1, 31.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), <=(CAST($3):DECIMAL(12, 2), 14456.00), <=($1, 51.00)), OR(<=(CAST($2):DECIMAL(12, 2), 193.00), > [...]
+              ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
       ImpalaAggRel(group=[{}], B2_LP=[AVG($0)], B2_CNT=[COUNT($0)], B2_CNTD=[COUNT(DISTINCT $0)])
-        ImpalaProjectRel(ss_list_price=[$11])
-          ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[6..10]]), OR(>=($11, 71.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), >=($10, 38.00)), OR(>=($11, 71.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), <=($10, 58.00)), OR(>=($11, 71.00), <=(CAST($18):DECIMAL(12, 2), 15775.00), >=($10, 38.00)), OR(>=($11, 71.00), <=(CAST($18):DECIMAL(12, 2), 15775.00), <=($10, 58.00)), OR(<=($11, 81.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), >=($10, 38.00)), OR(<=($11, 81.00), >=(CAST($18):DECIMAL(12,  [...]
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+        ImpalaProjectRel(ss_list_price=[$2])
+          ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[6..10]]), OR(>=($2, 71.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), >=($1, 38.00)), OR(>=($2, 71.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), <=($1, 58.00)), OR(>=($2, 71.00), <=(CAST($3):DECIMAL(12, 2), 15775.00), >=($1, 38.00)), OR(>=($2, 71.00), <=(CAST($3):DECIMAL(12, 2), 15775.00), <=($1, 58.00)), OR(<=($2, 81.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), >=($1, 38.00)), OR(<=($2, 81.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), <= [...]
+            ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
 F02:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[0, 18] cpu-comparison-result=720 [max(1 (self) vs 720 (sum children))]
@@ -773,29 +785,35 @@ ImpalaSortRel(fetch=[100:TINYINT])
           ImpalaJoinRel(condition=[true], joinType=[inner])
             ImpalaJoinRel(condition=[true], joinType=[inner])
               ImpalaAggRel(group=[{}], B1_LP=[AVG($0)], B1_CNT=[COUNT($0)], B1_CNTD=[COUNT(DISTINCT $0)])
-                ImpalaProjectRel(ss_list_price=[$11])
-                  ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[0..5]]), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), >=(CAST($18):DECIMAL(12, 2), 4483.00), >=($10, 24.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), >=(CAST($18):DECIMAL(12, 2), 4483.00), <=($10, 44.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), <=(CAST($18):DECIMAL(12, 2), 5483.00), >=($10, 24.00)), OR(>=(CAST($11):DECIMAL(12, 2), 189.00), <=(CAST($18):DECIMAL(12, 2), 5483.00), <=($10, 44.00)), OR(<=(CAST($11):DECIMAL(12, 2 [...]
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                ImpalaProjectRel(ss_list_price=[$2])
+                  ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[0..5]]), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), >=(CAST($3):DECIMAL(12, 2), 4483.00), >=($1, 24.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), >=(CAST($3):DECIMAL(12, 2), 4483.00), <=($1, 44.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), <=(CAST($3):DECIMAL(12, 2), 5483.00), >=($1, 24.00)), OR(>=(CAST($2):DECIMAL(12, 2), 189.00), <=(CAST($3):DECIMAL(12, 2), 5483.00), <=($1, 44.00)), OR(<=(CAST($2):DECIMAL(12, 2), 199.00), > [...]
+                    ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaAggRel(group=[{}], B6_LP=[AVG($0)], B6_CNT=[COUNT($0)], B6_CNTD=[COUNT(DISTINCT $0)])
-                ImpalaProjectRel(ss_list_price=[$11])
-                  ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[26..30]]), OR(>=($11, 49.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), >=($10, 52.00)), OR(>=($11, 49.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), <=($10, 72.00)), OR(>=($11, 49.00), <=(CAST($18):DECIMAL(12, 2), 3950.00), >=($10, 52.00)), OR(>=($11, 49.00), <=(CAST($18):DECIMAL(12, 2), 3950.00), <=($10, 72.00)), OR(<=($11, 59.00), >=(CAST($18):DECIMAL(12, 2), 2950.00), >=($10, 52.00)), OR(<=($11, 59.00), >=(CAST($18):DECIMAL( [...]
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+                ImpalaProjectRel(ss_list_price=[$2])
+                  ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[26..30]]), OR(>=($2, 49.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), >=($1, 52.00)), OR(>=($2, 49.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), <=($1, 72.00)), OR(>=($2, 49.00), <=(CAST($3):DECIMAL(12, 2), 3950.00), >=($1, 52.00)), OR(>=($2, 49.00), <=(CAST($3):DECIMAL(12, 2), 3950.00), <=($1, 72.00)), OR(<=($2, 59.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), >=($1, 52.00)), OR(<=($2, 59.00), >=(CAST($3):DECIMAL(12, 2), 2950.00), [...]
+                    ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
             ImpalaAggRel(group=[{}], B5_LP=[AVG($0)], B5_CNT=[COUNT($0)], B5_CNTD=[COUNT(DISTINCT $0)])
-              ImpalaProjectRel(ss_list_price=[$11])
-                ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[21..25]]), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), >=(CAST($18):DECIMAL(12, 2), 17430.00), >=($10, 57.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), >=(CAST($18):DECIMAL(12, 2), 17430.00), <=($10, 77.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), <=(CAST($18):DECIMAL(12, 2), 18430.00), >=($10, 57.00)), OR(>=(CAST($11):DECIMAL(12, 2), 180.00), <=(CAST($18):DECIMAL(12, 2), 18430.00), <=($10, 77.00)), OR(<=(CAST($11):DECIMAL(1 [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+              ImpalaProjectRel(ss_list_price=[$2])
+                ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[21..25]]), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), >=(CAST($3):DECIMAL(12, 2), 17430.00), >=($1, 57.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), >=(CAST($3):DECIMAL(12, 2), 17430.00), <=($1, 77.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), <=(CAST($3):DECIMAL(12, 2), 18430.00), >=($1, 57.00)), OR(>=(CAST($2):DECIMAL(12, 2), 180.00), <=(CAST($3):DECIMAL(12, 2), 18430.00), <=($1, 77.00)), OR(<=(CAST($2):DECIMAL(12, 2), 190.00 [...]
+                  ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
           ImpalaAggRel(group=[{}], B4_LP=[AVG($0)], B4_CNT=[COUNT($0)], B4_CNTD=[COUNT(DISTINCT $0)])
-            ImpalaProjectRel(ss_list_price=[$11])
-              ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[16..20]]), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), >=(CAST($18):DECIMAL(12, 2), 4905.00), >=($10, 27.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), >=(CAST($18):DECIMAL(12, 2), 4905.00), <=($10, 47.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), <=(CAST($18):DECIMAL(12, 2), 5905.00), >=($10, 27.00)), OR(>=(CAST($11):DECIMAL(12, 2), 135.00), <=(CAST($18):DECIMAL(12, 2), 5905.00), <=($10, 47.00)), OR(<=(CAST($11):DECIMAL(12, 2), [...]
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+            ImpalaProjectRel(ss_list_price=[$2])
+              ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[16..20]]), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), >=(CAST($3):DECIMAL(12, 2), 4905.00), >=($1, 27.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), >=(CAST($3):DECIMAL(12, 2), 4905.00), <=($1, 47.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), <=(CAST($3):DECIMAL(12, 2), 5905.00), >=($1, 27.00)), OR(>=(CAST($2):DECIMAL(12, 2), 135.00), <=(CAST($3):DECIMAL(12, 2), 5905.00), <=($1, 47.00)), OR(<=(CAST($2):DECIMAL(12, 2), 145.00), >=( [...]
+                ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
         ImpalaAggRel(group=[{}], B3_LP=[AVG($0)], B3_CNT=[COUNT($0)], B3_CNTD=[COUNT(DISTINCT $0)])
-          ImpalaProjectRel(ss_list_price=[$11])
-            ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[11..15]]), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), >=(CAST($18):DECIMAL(12, 2), 13456.00), >=($10, 31.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), >=(CAST($18):DECIMAL(12, 2), 13456.00), <=($10, 51.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), <=(CAST($18):DECIMAL(12, 2), 14456.00), >=($10, 31.00)), OR(>=(CAST($11):DECIMAL(12, 2), 183.00), <=(CAST($18):DECIMAL(12, 2), 14456.00), <=($10, 51.00)), OR(<=(CAST($11):DECIMAL(12, 2 [...]
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+          ImpalaProjectRel(ss_list_price=[$2])
+            ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[11..15]]), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), >=(CAST($3):DECIMAL(12, 2), 13456.00), >=($1, 31.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), >=(CAST($3):DECIMAL(12, 2), 13456.00), <=($1, 51.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), <=(CAST($3):DECIMAL(12, 2), 14456.00), >=($1, 31.00)), OR(>=(CAST($2):DECIMAL(12, 2), 183.00), <=(CAST($3):DECIMAL(12, 2), 14456.00), <=($1, 51.00)), OR(<=(CAST($2):DECIMAL(12, 2), 193.00), > [...]
+              ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
       ImpalaAggRel(group=[{}], B2_LP=[AVG($0)], B2_CNT=[COUNT($0)], B2_CNTD=[COUNT(DISTINCT $0)])
-        ImpalaProjectRel(ss_list_price=[$11])
-          ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[6..10]]), OR(>=($11, 71.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), >=($10, 38.00)), OR(>=($11, 71.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), <=($10, 58.00)), OR(>=($11, 71.00), <=(CAST($18):DECIMAL(12, 2), 15775.00), >=($10, 38.00)), OR(>=($11, 71.00), <=(CAST($18):DECIMAL(12, 2), 15775.00), <=($10, 58.00)), OR(<=($11, 81.00), >=(CAST($18):DECIMAL(12, 2), 14775.00), >=($10, 38.00)), OR(<=($11, 81.00), >=(CAST($18):DECIMAL(12,  [...]
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
+        ImpalaProjectRel(ss_list_price=[$2])
+          ImpalaFilterRel(condition=[AND(SEARCH($0, Sarg[[6..10]]), OR(>=($2, 71.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), >=($1, 38.00)), OR(>=($2, 71.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), <=($1, 58.00)), OR(>=($2, 71.00), <=(CAST($3):DECIMAL(12, 2), 15775.00), >=($1, 38.00)), OR(>=($2, 71.00), <=(CAST($3):DECIMAL(12, 2), 15775.00), <=($1, 58.00)), OR(<=($2, 81.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), >=($1, 38.00)), OR(<=($2, 81.00), >=(CAST($3):DECIMAL(12, 2), 14775.00), <= [...]
+            ImpalaProjectRel(ss_quantity=[$9], ss_wholesale_cost=[$10], ss_list_price=[$11], ss_coupon_amt=[$18])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
 F02:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[0, 18] cpu-comparison-result=720 [max(1 (self) vs 720 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q29.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q29.test
index 2970775d1..302bc34f1 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q29.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q29.test
@@ -55,34 +55,37 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
       ImpalaJoinRel(condition=[AND(=($4, $19), =($3, $18), =($6, $20))], joinType=[inner])
         ImpalaJoinRel(condition=[=($10, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($8, 4), =($6, 1998), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(=($2, 4), =($1, 1998), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[1998, 1999, 2000]), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[1998, 1999, 2000]), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-            ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..7]]), =($6, 1998), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..7]]), =($1, 1998), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=14.29GB mem-reservation=164.59MB thread-reservation=1 runtime-filters-memory=55.00MB
 |  max-parallelism=1 segment-costs=[4118647667, 758790267, 700]
@@ -276,34 +279,37 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
       ImpalaJoinRel(condition=[AND(=($4, $19), =($3, $18), =($6, $20))], joinType=[inner])
         ImpalaJoinRel(condition=[=($10, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($8, 4), =($6, 1998), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(=($2, 4), =($1, 1998), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[1998, 1999, 2000]), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[1998, 1999, 2000]), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-            ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..7]]), =($6, 1998), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..7]]), =($1, 1998), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F10:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=5.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[766] cpu-comparison-result=176 [max(1 (self) vs 176 (sum children))]
@@ -653,34 +659,37 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], dir0=[ASC], dir1=[
       ImpalaJoinRel(condition=[AND(=($4, $19), =($3, $18), =($6, $20))], joinType=[inner])
         ImpalaJoinRel(condition=[=($10, $5)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $3)], joinType=[inner])
-            ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
             ImpalaJoinRel(condition=[=($6, $5)], joinType=[inner])
-              ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($22), IS NOT NULL($6))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3), IS NOT NULL($5), IS NOT NULL($2))])
+                ImpalaProjectRel(ss_item_sk=[$1], ss_customer_sk=[$2], ss_store_sk=[$6], ss_ticket_number=[$8], ss_quantity=[$9], ss_sold_date_sk=[$22])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(=($8, 4), =($6, 1998), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-          ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
-            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(=($2, 4), =($1, 1998), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(s_store_sk=[$0], s_store_id=[$1], s_store_name=[$5])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
         ImpalaJoinRel(condition=[AND(=($6, $0), =($5, $1))], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($14), IS NOT NULL($33))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($3))])
+              ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_item_sk=[$14], cs_quantity=[$17], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($6, Sarg[1998, 1999, 2000]), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[1998, 1999, 2000]), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-            ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($8), IS NOT NULL($19))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1), IS NOT NULL($2), IS NOT NULL($4))])
+              ImpalaProjectRel(sr_item_sk=[$1], sr_customer_sk=[$2], sr_ticket_number=[$8], sr_return_quantity=[$9], sr_returned_date_sk=[$19])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_returns]])
             ImpalaProjectRel(d_date_sk=[$0])
-              ImpalaFilterRel(condition=[AND(SEARCH($8, Sarg[[4..7]]), =($6, 1998), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[4..7]]), =($1, 1998), IS NOT NULL($0))])
+                ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F10:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=5.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[766] cpu-comparison-result=176 [max(1 (self) vs 176 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q30.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q30.test
index 0576ea45c..efb400581 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q30.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q30.test
@@ -37,42 +37,45 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], sort5=
   ImpalaProjectRel(C_CUSTOMER_ID=[$1], C_SALUTATION=[$3], C_FIRST_NAME=[$4], C_LAST_NAME=[$5], C_PREFERRED_CUST_FLAG=[$6], C_BIRTH_DAY=[$7], C_BIRTH_MONTH=[$8], C_BIRTH_YEAR=[$9], C_BIRTH_COUNTRY=[$10], C_LOGIN=[$11], C_EMAIL_ADDRESS=[$12], C_LAST_REVIEW_DATE_SK=[$13], CTR_TOTAL_RETURN=[$17])
     ImpalaJoinRel(condition=[=($15, $0)], joinType=[inner])
       ImpalaJoinRel(condition=[=($14, $2)], joinType=[inner])
-        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_current_addr_sk=[$4], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_day=[$11], c_birth_month=[$12], c_birth_year=[$13], c_birth_country=[$14], c_login=[$15], c_email_address=[$16], c_last_review_date_sk=[$17])
-          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_current_addr_sk=[$4], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_day=[$11], c_birth_month=[$12], c_birth_year=[$13], c_birth_country=[$14], c_login=[$15], c_email_address=[$16], c_last_review_date_sk=[$17])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaProjectRel(ca_address_sk=[$0])
-          ImpalaFilterRel(condition=[AND(=($8, _UTF-8'GA'), IS NOT NULL($0))])
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+          ImpalaFilterRel(condition=[AND(=($1, _UTF-8'GA'), IS NOT NULL($0))])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
       ImpalaJoinRel(condition=[AND(=($1, $3), >($2, *($4, 1.2:DECIMAL(2, 1))))], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($2)])
           ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
             ImpalaProjectRel(CTR_CUSTOMER_SK=[$2], CTR_STATE=[$1], wr_return_amt=[$4])
               ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($8))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($23), IS NOT NULL($9), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
           ImpalaProjectRel(CTR_STATE=[$1], CTR_TOTAL_RETURN=[$2])
             ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
               ImpalaProjectRel(CTR_CUSTOMER_SK=[$2], CTR_STATE=[$1], wr_return_amt=[$4])
                 ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($8), IS NOT NULL($0))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                    ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($23), IS NOT NULL($9))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1))])
+                      ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.35GB mem-reservation=228.92MB thread-reservation=1 runtime-filters-memory=37.00MB
 |  max-parallelism=1 segment-costs=[257736616, 262078983, 10182545, 105784803, 1300]
@@ -278,42 +281,45 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], sort5=
   ImpalaProjectRel(C_CUSTOMER_ID=[$1], C_SALUTATION=[$3], C_FIRST_NAME=[$4], C_LAST_NAME=[$5], C_PREFERRED_CUST_FLAG=[$6], C_BIRTH_DAY=[$7], C_BIRTH_MONTH=[$8], C_BIRTH_YEAR=[$9], C_BIRTH_COUNTRY=[$10], C_LOGIN=[$11], C_EMAIL_ADDRESS=[$12], C_LAST_REVIEW_DATE_SK=[$13], CTR_TOTAL_RETURN=[$17])
     ImpalaJoinRel(condition=[=($15, $0)], joinType=[inner])
       ImpalaJoinRel(condition=[=($14, $2)], joinType=[inner])
-        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_current_addr_sk=[$4], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_day=[$11], c_birth_month=[$12], c_birth_year=[$13], c_birth_country=[$14], c_login=[$15], c_email_address=[$16], c_last_review_date_sk=[$17])
-          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_current_addr_sk=[$4], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_day=[$11], c_birth_month=[$12], c_birth_year=[$13], c_birth_country=[$14], c_login=[$15], c_email_address=[$16], c_last_review_date_sk=[$17])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaProjectRel(ca_address_sk=[$0])
-          ImpalaFilterRel(condition=[AND(=($8, _UTF-8'GA'), IS NOT NULL($0))])
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+          ImpalaFilterRel(condition=[AND(=($1, _UTF-8'GA'), IS NOT NULL($0))])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
       ImpalaJoinRel(condition=[AND(=($1, $3), >($2, *($4, 1.2:DECIMAL(2, 1))))], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($2)])
           ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
             ImpalaProjectRel(CTR_CUSTOMER_SK=[$2], CTR_STATE=[$1], wr_return_amt=[$4])
               ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($8))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($23), IS NOT NULL($9), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
           ImpalaProjectRel(CTR_STATE=[$1], CTR_TOTAL_RETURN=[$2])
             ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
               ImpalaProjectRel(CTR_CUSTOMER_SK=[$2], CTR_STATE=[$1], wr_return_amt=[$4])
                 ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($8), IS NOT NULL($0))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                    ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($23), IS NOT NULL($9))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1))])
+                      ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F14:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.19MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1364] cpu-comparison-result=122 [max(1 (self) vs 122 (sum children))]
@@ -721,42 +727,45 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], sort5=
   ImpalaProjectRel(C_CUSTOMER_ID=[$1], C_SALUTATION=[$3], C_FIRST_NAME=[$4], C_LAST_NAME=[$5], C_PREFERRED_CUST_FLAG=[$6], C_BIRTH_DAY=[$7], C_BIRTH_MONTH=[$8], C_BIRTH_YEAR=[$9], C_BIRTH_COUNTRY=[$10], C_LOGIN=[$11], C_EMAIL_ADDRESS=[$12], C_LAST_REVIEW_DATE_SK=[$13], CTR_TOTAL_RETURN=[$17])
     ImpalaJoinRel(condition=[=($15, $0)], joinType=[inner])
       ImpalaJoinRel(condition=[=($14, $2)], joinType=[inner])
-        ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_current_addr_sk=[$4], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_day=[$11], c_birth_month=[$12], c_birth_year=[$13], c_birth_country=[$14], c_login=[$15], c_email_address=[$16], c_last_review_date_sk=[$17])
-          ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($4))])
+        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+          ImpalaProjectRel(c_customer_sk=[$0], c_customer_id=[$1], c_current_addr_sk=[$4], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10], c_birth_day=[$11], c_birth_month=[$12], c_birth_year=[$13], c_birth_country=[$14], c_login=[$15], c_email_address=[$16], c_last_review_date_sk=[$17])
             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
         ImpalaProjectRel(ca_address_sk=[$0])
-          ImpalaFilterRel(condition=[AND(=($8, _UTF-8'GA'), IS NOT NULL($0))])
-            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+          ImpalaFilterRel(condition=[AND(=($1, _UTF-8'GA'), IS NOT NULL($0))])
+            ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
+              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
       ImpalaJoinRel(condition=[AND(=($1, $3), >($2, *($4, 1.2:DECIMAL(2, 1))))], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($2)])
           ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
             ImpalaProjectRel(CTR_CUSTOMER_SK=[$2], CTR_STATE=[$1], wr_return_amt=[$4])
               ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($8))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                  ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($23), IS NOT NULL($9), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
           ImpalaProjectRel(CTR_STATE=[$1], CTR_TOTAL_RETURN=[$2])
             ImpalaAggRel(group=[{0, 1}], CTR_TOTAL_RETURN=[SUM($2)])
               ImpalaProjectRel(CTR_CUSTOMER_SK=[$2], CTR_STATE=[$1], wr_return_amt=[$4])
                 ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($8), IS NOT NULL($0))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaJoinRel(condition=[=($3, $4)], joinType=[inner])
-                    ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($23), IS NOT NULL($9))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1))])
+                      ImpalaProjectRel(wr_returning_customer_sk=[$6], wr_returning_addr_sk=[$9], wr_return_amt=[$14], wr_returned_date_sk=[$23])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_returns]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 2000), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(=($1, 2000), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F14:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.19MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1364] cpu-comparison-result=122 [max(1 (self) vs 122 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q31.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q31.test
index 71c1a328c..683a0f99d 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q31.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q31.test
@@ -61,31 +61,33 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
         ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
           ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-              ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
               ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                  ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[=($9, $0)], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($1)])
           ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
             ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                  ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                    ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($10, 3), =($6, 1998), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($2, 3), =($1, 1998), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
             ImpalaProjectRel(CA_COUNTY=[$0], D_YEAR=[CAST(1998):INTEGER], STORE_SALES=[$1])
@@ -93,59 +95,63 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
               ImpalaFilterRel(condition=[IS NOT NULL($1)])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 3), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 3), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaFilterRel(condition=[IS NOT NULL($1)])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaFilterRel(condition=[IS NOT NULL($1)])
             ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
               ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
                 ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                  ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 1998), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 1998), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=5.00GB mem-reservation=254.12MB thread-reservation=1 runtime-filters-memory=25.00MB
 |  max-parallelism=1 segment-costs=[1126593810, 1126593810, 1126593810, 320645378, 320645378, 320645378, 10855316, 9024660]
@@ -598,31 +604,33 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
         ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
           ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-              ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
               ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                  ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[=($9, $0)], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($1)])
           ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
             ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                  ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                    ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($10, 3), =($6, 1998), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($2, 3), =($1, 1998), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
             ImpalaProjectRel(CA_COUNTY=[$0], D_YEAR=[CAST(1998):INTEGER], STORE_SALES=[$1])
@@ -630,59 +638,63 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
               ImpalaFilterRel(condition=[IS NOT NULL($1)])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 3), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 3), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaFilterRel(condition=[IS NOT NULL($1)])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaFilterRel(condition=[IS NOT NULL($1)])
             ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
               ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
                 ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                  ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 1998), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 1998), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F27:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=118.72MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[9771936] cpu-comparison-result=690 [max(1 (self) vs 690 (sum children))]
@@ -1518,31 +1530,33 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
         ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
           ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-              ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
               ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                  ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
       ImpalaJoinRel(condition=[=($9, $0)], joinType=[inner])
         ImpalaFilterRel(condition=[IS NOT NULL($1)])
           ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
             ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                  ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                    ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($10, 3), =($6, 1998), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(=($2, 3), =($1, 1998), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($0, $7)], joinType=[inner])
           ImpalaJoinRel(condition=[=($0, $5)], joinType=[inner])
             ImpalaProjectRel(CA_COUNTY=[$0], D_YEAR=[CAST(1998):INTEGER], STORE_SALES=[$1])
@@ -1550,59 +1564,63 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
               ImpalaFilterRel(condition=[IS NOT NULL($1)])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 3), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 3), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaFilterRel(condition=[IS NOT NULL($1)])
                 ImpalaAggRel(group=[{0}], STORE_SALES=[SUM($1)])
                   ImpalaProjectRel(CA_COUNTY=[$1], ss_ext_sales_price=[$3])
                     ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                      ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                       ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                        ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaProjectRel(ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($10, 2), =($6, 1998), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                          ImpalaFilterRel(condition=[AND(=($2, 2), =($1, 1998), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
           ImpalaFilterRel(condition=[IS NOT NULL($1)])
             ImpalaAggRel(group=[{0}], WEB_SALES=[SUM($1)])
               ImpalaProjectRel(CA_COUNTY=[$1], ws_ext_sales_price=[$3])
                 ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                  ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($7))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                    ImpalaProjectRel(ca_address_sk=[$0], ca_county=[$7])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaJoinRel(condition=[=($2, $3)], joinType=[inner])
-                    ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($10, 1), =($6, 1998), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                      ImpalaFilterRel(condition=[AND(=($2, 1), =($1, 1998), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F27:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=118.72MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[9771936] cpu-comparison-result=690 [max(1 (self) vs 690 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q32.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q32.test
index e61f1e51a..a65f9dcc4 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q32.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q32.test
@@ -37,23 +37,26 @@ ImpalaSortRel(fetch=[100:TINYINT])
         ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
           ImpalaProjectRel(cs_item_sk=[$0], cs_ext_discount_amt=[$1])
             ImpalaJoinRel(condition=[=($3, $2)], joinType=[inner])
-              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($4, $2)], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-            ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33), IS NOT NULL($21))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($1))])
+              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(i_item_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($13, 948), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+              ImpalaFilterRel(condition=[AND(=($1, 948), IS NOT NULL($0))])
+                ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=106.88MB mem-reservation=60.62MB thread-reservation=1 runtime-filters-memory=4.00MB
 |  max-parallelism=1 segment-costs=[4003350822, 989951169, 1]
@@ -187,23 +190,26 @@ ImpalaSortRel(fetch=[100:TINYINT])
         ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
           ImpalaProjectRel(cs_item_sk=[$0], cs_ext_discount_amt=[$1])
             ImpalaJoinRel(condition=[=($3, $2)], joinType=[inner])
-              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($4, $2)], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-            ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33), IS NOT NULL($21))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($1))])
+              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(i_item_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($13, 948), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+              ImpalaFilterRel(condition=[AND(=($1, 948), IS NOT NULL($0))])
+                ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[30, 1] cpu-comparison-result=145 [max(1 (self) vs 145 (sum children))]
@@ -437,23 +443,26 @@ ImpalaSortRel(fetch=[100:TINYINT])
         ImpalaAggRel(group=[{0}], agg#0=[AVG($1)])
           ImpalaProjectRel(cs_item_sk=[$0], cs_ext_discount_amt=[$1])
             ImpalaJoinRel(condition=[=($3, $2)], joinType=[inner])
-              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
-                ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33))])
+              ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2))])
+                ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
               ImpalaProjectRel(d_date_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
+                  ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($4, $2)], joinType=[inner])
           ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-            ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
-              ImpalaFilterRel(condition=[AND(IS NOT NULL($14), IS NOT NULL($33), IS NOT NULL($21))])
+            ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($2), IS NOT NULL($1))])
+              ImpalaProjectRel(cs_item_sk=[$14], cs_ext_discount_amt=[$21], cs_sold_date_sk=[$33])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
             ImpalaProjectRel(i_item_sk=[$0])
-              ImpalaFilterRel(condition=[AND(=($13, 948), IS NOT NULL($0))])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+              ImpalaFilterRel(condition=[AND(=($1, 948), IS NOT NULL($0))])
+                ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[1998-02-03:DATE..1998-05-04:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[30, 1] cpu-comparison-result=145 [max(1 (self) vs 145 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q33.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q33.test
index 16d8fdf1d..335190adb 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q33.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q33.test
@@ -86,67 +86,76 @@ ImpalaSortRel(sort0=[$1], dir0=[ASC], fetch=[100:TINYINT])
             ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
               ImpalaProjectRel(ss_ext_sales_price=[$4], i_manufact_id=[$1])
                 ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($1, $4)], joinType=[inner])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(I_MANUFACT_ID=[$13])
-                ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                      ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaProjectRel(I_MANUFACT_ID=[$1])
+                ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                  ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaAggRel(group=[{0}], TOTAL_SALES=[SUM($1)])
           ImpalaProjectRel(I_MANUFACT_ID=[$1], cs_ext_sales_price=[$0])
             ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
               ImpalaProjectRel(cs_ext_sales_price=[$4], i_manufact_id=[$1])
                 ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                      ImpalaProjectRel(cs_bill_addr_sk=[$5], cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($5), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(cs_bill_addr_sk=[$5], cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(I_MANUFACT_ID=[$13])
-                ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                      ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaProjectRel(I_MANUFACT_ID=[$1])
+                ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                  ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
       ImpalaAggRel(group=[{0}], TOTAL_SALES=[SUM($1)])
         ImpalaProjectRel(I_MANUFACT_ID=[$1], ws_ext_sales_price=[$0])
           ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
             ImpalaProjectRel(ws_ext_sales_price=[$4], i_manufact_id=[$1])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($1, $4)], joinType=[inner])
-                    ImpalaProjectRel(ws_item_sk=[$2], ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6), IS NOT NULL($2))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_item_sk=[$2], ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(ca_address_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                      ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-            ImpalaProjectRel(I_MANUFACT_ID=[$13])
-              ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaProjectRel(I_MANUFACT_ID=[$1])
+              ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=193.19MB mem-reservation=75.06MB thread-reservation=1 runtime-filters-memory=13.00MB
 |  max-parallelism=1 segment-costs=[506473333, 273008224, 140597923, 5829, 11764, 200]
@@ -505,67 +514,76 @@ ImpalaSortRel(sort0=[$1], dir0=[ASC], fetch=[100:TINYINT])
             ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
               ImpalaProjectRel(ss_ext_sales_price=[$4], i_manufact_id=[$1])
                 ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($1, $4)], joinType=[inner])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(I_MANUFACT_ID=[$13])
-                ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                      ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaProjectRel(I_MANUFACT_ID=[$1])
+                ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                  ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaAggRel(group=[{0}], TOTAL_SALES=[SUM($1)])
           ImpalaProjectRel(I_MANUFACT_ID=[$1], cs_ext_sales_price=[$0])
             ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
               ImpalaProjectRel(cs_ext_sales_price=[$4], i_manufact_id=[$1])
                 ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                      ImpalaProjectRel(cs_bill_addr_sk=[$5], cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($5), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(cs_bill_addr_sk=[$5], cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(I_MANUFACT_ID=[$13])
-                ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                      ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaProjectRel(I_MANUFACT_ID=[$1])
+                ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                  ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
       ImpalaAggRel(group=[{0}], TOTAL_SALES=[SUM($1)])
         ImpalaProjectRel(I_MANUFACT_ID=[$1], ws_ext_sales_price=[$0])
           ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
             ImpalaProjectRel(ws_ext_sales_price=[$4], i_manufact_id=[$1])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($1, $4)], joinType=[inner])
-                    ImpalaProjectRel(ws_item_sk=[$2], ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6), IS NOT NULL($2))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_item_sk=[$2], ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(ca_address_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                      ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-            ImpalaProjectRel(I_MANUFACT_ID=[$13])
-              ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaProjectRel(I_MANUFACT_ID=[$1])
+              ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F21:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[229] cpu-comparison-result=178 [max(1 (self) vs 178 (sum children))]
@@ -1203,67 +1221,76 @@ ImpalaSortRel(sort0=[$1], dir0=[ASC], fetch=[100:TINYINT])
             ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
               ImpalaProjectRel(ss_ext_sales_price=[$4], i_manufact_id=[$1])
                 ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($1, $4)], joinType=[inner])
-                      ImpalaProjectRel(ss_item_sk=[$1], ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($5), IS NOT NULL($1))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                        ImpalaProjectRel(ss_item_sk=[$1], ss_addr_sk=[$5], ss_ext_sales_price=[$14], ss_sold_date_sk=[$22])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(I_MANUFACT_ID=[$13])
-                ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                      ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaProjectRel(I_MANUFACT_ID=[$1])
+                ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                  ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
         ImpalaAggRel(group=[{0}], TOTAL_SALES=[SUM($1)])
           ImpalaProjectRel(I_MANUFACT_ID=[$1], cs_ext_sales_price=[$0])
             ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
               ImpalaProjectRel(cs_ext_sales_price=[$4], i_manufact_id=[$1])
                 ImpalaJoinRel(condition=[=($3, $0)], joinType=[inner])
-                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                    ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                    ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                   ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                     ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
-                      ImpalaProjectRel(cs_bill_addr_sk=[$5], cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
-                        ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($5), IS NOT NULL($14))])
+                      ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($0), IS NOT NULL($1))])
+                        ImpalaProjectRel(cs_bill_addr_sk=[$5], cs_item_sk=[$14], cs_ext_sales_price=[$22], cs_sold_date_sk=[$33])
                           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                       ImpalaProjectRel(ca_address_sk=[$0])
-                        ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                        ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                          ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                     ImpalaProjectRel(d_date_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-              ImpalaProjectRel(I_MANUFACT_ID=[$13])
-                ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                      ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                        ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+              ImpalaProjectRel(I_MANUFACT_ID=[$1])
+                ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                  ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
       ImpalaAggRel(group=[{0}], TOTAL_SALES=[SUM($1)])
         ImpalaProjectRel(I_MANUFACT_ID=[$1], ws_ext_sales_price=[$0])
           ImpalaJoinRel(condition=[=($1, $2)], joinType=[semi])
             ImpalaProjectRel(ws_ext_sales_price=[$4], i_manufact_id=[$1])
               ImpalaJoinRel(condition=[=($2, $0)], joinType=[inner])
-                ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(i_item_sk=[$0], i_manufact_id=[$13])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
                 ImpalaJoinRel(condition=[=($3, $5)], joinType=[inner])
                   ImpalaJoinRel(condition=[=($1, $4)], joinType=[inner])
-                    ImpalaProjectRel(ws_item_sk=[$2], ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
-                      ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($6), IS NOT NULL($2))])
+                    ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($1), IS NOT NULL($0))])
+                      ImpalaProjectRel(ws_item_sk=[$2], ws_bill_addr_sk=[$6], ws_ext_sales_price=[$22], ws_sold_date_sk=[$33])
                         ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                     ImpalaProjectRel(ca_address_sk=[$0])
-                      ImpalaFilterRel(condition=[AND(=($11, -6.00), IS NOT NULL($0))])
-                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
+                      ImpalaFilterRel(condition=[AND(=($1, -6.00), IS NOT NULL($0))])
+                        ImpalaProjectRel(ca_address_sk=[$0], ca_gmt_offset=[$11])
+                          ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(=($6, 1999), =($8, 2), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-            ImpalaProjectRel(I_MANUFACT_ID=[$13])
-              ImpalaFilterRel(condition=[=($12, _UTF-8'Electronics')])
-                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+                    ImpalaFilterRel(condition=[AND(=($1, 1999), =($2, 2), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_moy=[$8])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaProjectRel(I_MANUFACT_ID=[$1])
+              ImpalaFilterRel(condition=[=($0, _UTF-8'Electronics')])
+                ImpalaProjectRel(i_category=[$12], i_manufact_id=[$13])
+                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F21:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.02MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[229] cpu-comparison-result=178 [max(1 (self) vs 178 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q34.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q34.test
index 560e2a610..b4ca50d20 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q34.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q34.test
@@ -36,8 +36,8 @@ Per-Host Resource Estimates: Memory=974MB
 ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], dir0=[ASC], dir1=[ASC], dir2=[ASC], dir3=[DESC], dir4=[ASC])
   ImpalaProjectRel(C_LAST_NAME=[$3], C_FIRST_NAME=[$2], C_SALUTATION=[$1], C_PREFERRED_CUST_FLAG=[$4], SS_TICKET_NUMBER=[$5], CNT=[$7])
     ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
-      ImpalaProjectRel(c_customer_sk=[$0], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10])
-        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaProjectRel(c_customer_sk=[$0], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10])
           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
       ImpalaFilterRel(condition=[SEARCH($2, Sarg[[15L:BIGINT..20L:BIGINT]]:BIGINT)])
         ImpalaAggRel(group=[{0, 1}], CNT=[COUNT()])
@@ -45,18 +45,21 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], dir0=[
             ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
               ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                  ImpalaProjectRel(ss_customer_sk=[$2], ss_hdemo_sk=[$4], ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6), IS NOT NULL($4), IS NOT NULL($2))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ss_customer_sk=[$2], ss_hdemo_sk=[$4], ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[1..3], [25..28]; NULL AS FALSE]), SEARCH($6, Sarg[1999, 2000, 2001]), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1..3], [25..28]; NULL AS FALSE]), SEARCH($1, Sarg[1999, 2000, 2001]), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_dom=[$9])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(hd_demo_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(OR(=($2, _UTF-8'>10000'), =($2, _UTF-8'5001-10000')), >($4, 0), >(CASE(>($4, 0), /(CAST($3):DOUBLE, CAST($4):DOUBLE), null:DOUBLE), CAST(1.2:DECIMAL(2, 1)):DOUBLE NOT NULL), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
+                  ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'>10000'), =($1, _UTF-8'5001-10000')), >($3, 0), >(CASE(>($3, 0), /(CAST($2):DOUBLE, CAST($3):DOUBLE), null:DOUBLE), CAST(1.2:DECIMAL(2, 1)):DOUBLE NOT NULL), IS NOT NULL($0))])
+                    ImpalaProjectRel(hd_demo_sk=[$0], hd_buy_potential=[$2], hd_dep_count=[$3], hd_vehicle_count=[$4])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
               ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($23, Sarg[_UTF-8'Coal County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gage County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gogebic County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson Davis Parish':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Levy County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Oglethorpe County':VARCHAR( [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Coal County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gage County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gogebic County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson Davis Parish':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Levy County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Oglethorpe County':VARCHAR(2 [...]
+                  ImpalaProjectRel(s_store_sk=[$0], s_county=[$23])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=974.24MB mem-reservation=74.00MB thread-reservation=1 runtime-filters-memory=5.00MB
 |  max-parallelism=1 segment-costs=[1387929449, 24464731, 16750800]
@@ -182,8 +185,8 @@ Per-Host Resource Estimates: Memory=845MB
 ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], dir0=[ASC], dir1=[ASC], dir2=[ASC], dir3=[DESC], dir4=[ASC])
   ImpalaProjectRel(C_LAST_NAME=[$3], C_FIRST_NAME=[$2], C_SALUTATION=[$1], C_PREFERRED_CUST_FLAG=[$4], SS_TICKET_NUMBER=[$5], CNT=[$7])
     ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
-      ImpalaProjectRel(c_customer_sk=[$0], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10])
-        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaProjectRel(c_customer_sk=[$0], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10])
           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
       ImpalaFilterRel(condition=[SEARCH($2, Sarg[[15L:BIGINT..20L:BIGINT]]:BIGINT)])
         ImpalaAggRel(group=[{0, 1}], CNT=[COUNT()])
@@ -191,18 +194,21 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], dir0=[
             ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
               ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                  ImpalaProjectRel(ss_customer_sk=[$2], ss_hdemo_sk=[$4], ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6), IS NOT NULL($4), IS NOT NULL($2))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ss_customer_sk=[$2], ss_hdemo_sk=[$4], ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[1..3], [25..28]; NULL AS FALSE]), SEARCH($6, Sarg[1999, 2000, 2001]), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1..3], [25..28]; NULL AS FALSE]), SEARCH($1, Sarg[1999, 2000, 2001]), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_dom=[$9])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(hd_demo_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(OR(=($2, _UTF-8'>10000'), =($2, _UTF-8'5001-10000')), >($4, 0), >(CASE(>($4, 0), /(CAST($3):DOUBLE, CAST($4):DOUBLE), null:DOUBLE), CAST(1.2:DECIMAL(2, 1)):DOUBLE NOT NULL), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
+                  ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'>10000'), =($1, _UTF-8'5001-10000')), >($3, 0), >(CASE(>($3, 0), /(CAST($2):DOUBLE, CAST($3):DOUBLE), null:DOUBLE), CAST(1.2:DECIMAL(2, 1)):DOUBLE NOT NULL), IS NOT NULL($0))])
+                    ImpalaProjectRel(hd_demo_sk=[$0], hd_buy_potential=[$2], hd_dep_count=[$3], hd_vehicle_count=[$4])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
               ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($23, Sarg[_UTF-8'Coal County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gage County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gogebic County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson Davis Parish':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Levy County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Oglethorpe County':VARCHAR( [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Coal County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gage County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gogebic County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson Davis Parish':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Levy County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Oglethorpe County':VARCHAR(2 [...]
+                  ImpalaProjectRel(s_store_sk=[$0], s_county=[$23])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=122.18MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[17904704] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
@@ -422,8 +428,8 @@ Per-Host Resource Estimates: Memory=845MB
 ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], dir0=[ASC], dir1=[ASC], dir2=[ASC], dir3=[DESC], dir4=[ASC])
   ImpalaProjectRel(C_LAST_NAME=[$3], C_FIRST_NAME=[$2], C_SALUTATION=[$1], C_PREFERRED_CUST_FLAG=[$4], SS_TICKET_NUMBER=[$5], CNT=[$7])
     ImpalaJoinRel(condition=[=($6, $0)], joinType=[inner])
-      ImpalaProjectRel(c_customer_sk=[$0], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10])
-        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+      ImpalaFilterRel(condition=[IS NOT NULL($0)])
+        ImpalaProjectRel(c_customer_sk=[$0], c_salutation=[$7], c_first_name=[$8], c_last_name=[$9], c_preferred_cust_flag=[$10])
           ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
       ImpalaFilterRel(condition=[SEARCH($2, Sarg[[15L:BIGINT..20L:BIGINT]]:BIGINT)])
         ImpalaAggRel(group=[{0, 1}], CNT=[COUNT()])
@@ -431,18 +437,21 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$4], dir0=[
             ImpalaJoinRel(condition=[=($2, $7)], joinType=[inner])
               ImpalaJoinRel(condition=[=($1, $6)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($4, $5)], joinType=[inner])
-                  ImpalaProjectRel(ss_customer_sk=[$2], ss_hdemo_sk=[$4], ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($6), IS NOT NULL($4), IS NOT NULL($2))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ss_customer_sk=[$2], ss_hdemo_sk=[$4], ss_store_sk=[$6], ss_ticket_number=[$8], ss_sold_date_sk=[$22])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                   ImpalaProjectRel(d_date_sk=[$0])
-                    ImpalaFilterRel(condition=[AND(SEARCH($9, Sarg[[1..3], [25..28]; NULL AS FALSE]), SEARCH($6, Sarg[1999, 2000, 2001]), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1..3], [25..28]; NULL AS FALSE]), SEARCH($1, Sarg[1999, 2000, 2001]), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_dom=[$9])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
                 ImpalaProjectRel(hd_demo_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(OR(=($2, _UTF-8'>10000'), =($2, _UTF-8'5001-10000')), >($4, 0), >(CASE(>($4, 0), /(CAST($3):DOUBLE, CAST($4):DOUBLE), null:DOUBLE), CAST(1.2:DECIMAL(2, 1)):DOUBLE NOT NULL), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
+                  ImpalaFilterRel(condition=[AND(OR(=($1, _UTF-8'>10000'), =($1, _UTF-8'5001-10000')), >($3, 0), >(CASE(>($3, 0), /(CAST($2):DOUBLE, CAST($3):DOUBLE), null:DOUBLE), CAST(1.2:DECIMAL(2, 1)):DOUBLE NOT NULL), IS NOT NULL($0))])
+                    ImpalaProjectRel(hd_demo_sk=[$0], hd_buy_potential=[$2], hd_dep_count=[$3], hd_vehicle_count=[$4])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, household_demographics]])
               ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($23, Sarg[_UTF-8'Coal County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gage County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gogebic County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson Davis Parish':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Levy County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Oglethorpe County':VARCHAR( [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'Coal County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gage County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Gogebic County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Jefferson Davis Parish':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Levy County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Mobile County':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'Oglethorpe County':VARCHAR(2 [...]
+                  ImpalaProjectRel(s_store_sk=[$0], s_county=[$23])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=122.18MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[17904704] cpu-comparison-result=120 [max(1 (self) vs 120 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q35a.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q35a.test
index cdf1de467..d3cf2d258 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q35a.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q35a.test
@@ -70,43 +70,46 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$8], sort5=
         ImpalaJoinRel(condition=[=($0, $7)], joinType=[semi])
           ImpalaProjectRel(c_customer_sk=[$9], ca_state=[$7], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$3], cd_dep_employed_count=[$4], cd_dep_college_count=[$5])
             ImpalaJoinRel(condition=[=($0, $10)], joinType=[inner])
-              ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$6], cd_dep_employed_count=[$7], cd_dep_college_count=[$8])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$6], cd_dep_employed_count=[$7], cd_dep_college_count=[$8])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
               ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($1, $0)], joinType=[inner])
                   ImpalaAggRel(group=[{0}])
                     ImpalaProjectRel(ss_customer_sk=[$0])
                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                        ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaUnionRel(all=[true])
             ImpalaProjectRel(CUSTOMSK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaProjectRel(CUSTOMSK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=21.00GB mem-reservation=227.81MB thread-reservation=1 runtime-filters-memory=53.00MB
 |  max-parallelism=1 segment-costs=[533871767, 835774005, 1717703, 1800]
@@ -323,43 +326,46 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$8], sort5=
         ImpalaJoinRel(condition=[=($0, $7)], joinType=[semi])
           ImpalaProjectRel(c_customer_sk=[$9], ca_state=[$7], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$3], cd_dep_employed_count=[$4], cd_dep_college_count=[$5])
             ImpalaJoinRel(condition=[=($0, $10)], joinType=[inner])
-              ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$6], cd_dep_employed_count=[$7], cd_dep_college_count=[$8])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$6], cd_dep_employed_count=[$7], cd_dep_college_count=[$8])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
               ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($1, $0)], joinType=[inner])
                   ImpalaAggRel(group=[{0}])
                     ImpalaProjectRel(ss_customer_sk=[$0])
                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                        ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaUnionRel(all=[true])
             ImpalaProjectRel(CUSTOMSK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaProjectRel(CUSTOMSK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F15:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.10MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1844] cpu-comparison-result=258 [max(1 (self) vs 258 (sum children))]
@@ -761,43 +767,46 @@ ImpalaSortRel(sort0=[$0], sort1=[$1], sort2=[$2], sort3=[$3], sort4=[$8], sort5=
         ImpalaJoinRel(condition=[=($0, $7)], joinType=[semi])
           ImpalaProjectRel(c_customer_sk=[$9], ca_state=[$7], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$3], cd_dep_employed_count=[$4], cd_dep_college_count=[$5])
             ImpalaJoinRel(condition=[=($0, $10)], joinType=[inner])
-              ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$6], cd_dep_employed_count=[$7], cd_dep_college_count=[$8])
-                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaProjectRel(cd_demo_sk=[$0], cd_gender=[$1], cd_marital_status=[$2], cd_dep_count=[$6], cd_dep_employed_count=[$7], cd_dep_college_count=[$8])
                   ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_demographics]])
               ImpalaJoinRel(condition=[=($5, $0)], joinType=[inner])
-                ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(ca_address_sk=[$0], ca_state=[$8])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer_address]])
                 ImpalaJoinRel(condition=[=($1, $0)], joinType=[inner])
                   ImpalaAggRel(group=[{0}])
                     ImpalaProjectRel(ss_customer_sk=[$0])
                       ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                        ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                          ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($22))])
+                        ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                          ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                         ImpalaProjectRel(d_date_sk=[$0])
-                          ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                            ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                  ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($2), IS NOT NULL($0))])
+                          ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                            ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($2), IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(c_customer_sk=[$0], c_current_cdemo_sk=[$2], c_current_addr_sk=[$4])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaUnionRel(all=[true])
             ImpalaProjectRel(CUSTOMSK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($3), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
             ImpalaProjectRel(CUSTOMSK=[$0])
               ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($6), IS NOT NULL($33))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(cs_ship_customer_sk=[$6], cs_sold_date_sk=[$33])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 2002), <($10, 4), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 2002), <($2, 4), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6], d_qoy=[$10])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
 F15:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.10MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[1844] cpu-comparison-result=258 [max(1 (self) vs 258 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q36.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q36.test
index 69b60a6e9..7b5f3e755 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q36.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q36.test
@@ -40,17 +40,19 @@ ImpalaProjectRel(GROSS_MARGIN=[$0], I_CATEGORY=[$1], I_CLASS=[$2], LOCHIERARCHY=
           ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[=($6, $1)], joinType=[inner])
               ImpalaJoinRel(condition=[=($5, $4)], joinType=[inner])
-                ImpalaProjectRel(ss_item_sk=[$1], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ss_item_sk=[$1], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($24, Sarg[_UTF-8'MI':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MO':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NM':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OH':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF- [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
-            ImpalaProjectRel(i_item_sk=[$0], i_class=[$10], i_category=[$12])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'MI':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MO':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NM':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OH':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8 [...]
+                  ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_class=[$10], i_category=[$12])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=108.88MB mem-reservation=51.19MB thread-reservation=1 runtime-filters-memory=3.00MB
@@ -188,17 +190,19 @@ ImpalaProjectRel(GROSS_MARGIN=[$0], I_CATEGORY=[$1], I_CLASS=[$2], LOCHIERARCHY=
           ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[=($6, $1)], joinType=[inner])
               ImpalaJoinRel(condition=[=($5, $4)], joinType=[inner])
-                ImpalaProjectRel(ss_item_sk=[$1], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ss_item_sk=[$1], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($24, Sarg[_UTF-8'MI':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MO':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NM':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OH':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF- [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
-            ImpalaProjectRel(i_item_sk=[$0], i_class=[$10], i_category=[$12])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'MI':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MO':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NM':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OH':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8 [...]
+                  ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_class=[$10], i_category=[$12])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
@@ -428,17 +432,19 @@ ImpalaProjectRel(GROSS_MARGIN=[$0], I_CATEGORY=[$1], I_CLASS=[$2], LOCHIERARCHY=
           ImpalaJoinRel(condition=[=($7, $0)], joinType=[inner])
             ImpalaJoinRel(condition=[=($6, $1)], joinType=[inner])
               ImpalaJoinRel(condition=[=($5, $4)], joinType=[inner])
-                ImpalaProjectRel(ss_item_sk=[$1], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
-                  ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($1), IS NOT NULL($6))])
+                ImpalaFilterRel(condition=[AND(IS NOT NULL($4), IS NOT NULL($0), IS NOT NULL($1))])
+                  ImpalaProjectRel(ss_item_sk=[$1], ss_store_sk=[$6], ss_ext_sales_price=[$14], ss_net_profit=[$21], ss_sold_date_sk=[$22])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
                 ImpalaProjectRel(d_date_sk=[$0])
-                  ImpalaFilterRel(condition=[AND(=($6, 1998), IS NOT NULL($0))])
-                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                  ImpalaFilterRel(condition=[AND(=($1, 1998), IS NOT NULL($0))])
+                    ImpalaProjectRel(d_date_sk=[$0], d_year=[$6])
+                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
               ImpalaProjectRel(s_store_sk=[$0])
-                ImpalaFilterRel(condition=[AND(SEARCH($24, Sarg[_UTF-8'MI':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MO':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NM':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OH':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF- [...]
-                  ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
-            ImpalaProjectRel(i_item_sk=[$0], i_class=[$10], i_category=[$12])
-              ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[_UTF-8'MI':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'MO':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'NM':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'OH':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'PA':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'TN':VARCHAR(2147483647) CHARACTER SET "UTF-8", _UTF-8'WV':VARCHAR(2147483647) CHARACTER SET "UTF-8 [...]
+                  ImpalaProjectRel(s_store_sk=[$0], s_state=[$24])
+                    ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store]])
+            ImpalaFilterRel(condition=[IS NOT NULL($0)])
+              ImpalaProjectRel(i_item_sk=[$0], i_class=[$10], i_category=[$12])
                 ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q37.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q37.test
index 18b621ce7..a029ac77f 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q37.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q37.test
@@ -24,19 +24,22 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CURRENT_PRICE=[$7])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $1)], joinType=[inner])
-          ImpalaProjectRel(inv_item_sk=[$0], inv_date_sk=[$3])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[100..500]]), IS NOT NULL($0), IS NOT NULL($3))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
+          ImpalaProjectRel(inv_item_sk=[$0], inv_date_sk=[$2])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[100..500]]), IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-01-20:DATE..2001-03-21:DATE]]:DATE), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-01-20:DATE..2001-03-21:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($0, $1)], joinType=[inner])
-          ImpalaProjectRel(cs_item_sk=[$14])
-            ImpalaFilterRel(condition=[IS NOT NULL($14)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(cs_item_sk=[$14])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5])
-            ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[35.00:DECIMAL(7, 2)..65.00:DECIMAL(7, 2)]]:DECIMAL(7, 2)), SEARCH($13, Sarg[715, 861, 928, 942]), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$2], i_current_price=[$3])
+            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[35.00:DECIMAL(7, 2)..65.00:DECIMAL(7, 2)]]:DECIMAL(7, 2)), SEARCH($4, Sarg[715, 861, 928, 942]), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_manufact_id=[$13])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=5.26GB mem-reservation=73.19MB thread-reservation=1 runtime-filters-memory=3.00MB
 |  max-parallelism=1 segment-costs=[879026203, 3746309, 300]
@@ -143,19 +146,22 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CURRENT_PRICE=[$7])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $1)], joinType=[inner])
-          ImpalaProjectRel(inv_item_sk=[$0], inv_date_sk=[$3])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[100..500]]), IS NOT NULL($0), IS NOT NULL($3))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
+          ImpalaProjectRel(inv_item_sk=[$0], inv_date_sk=[$2])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[100..500]]), IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-01-20:DATE..2001-03-21:DATE]]:DATE), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-01-20:DATE..2001-03-21:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($0, $1)], joinType=[inner])
-          ImpalaProjectRel(cs_item_sk=[$14])
-            ImpalaFilterRel(condition=[IS NOT NULL($14)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(cs_item_sk=[$14])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5])
-            ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[35.00:DECIMAL(7, 2)..65.00:DECIMAL(7, 2)]]:DECIMAL(7, 2)), SEARCH($13, Sarg[715, 861, 928, 942]), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$2], i_current_price=[$3])
+            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[35.00:DECIMAL(7, 2)..65.00:DECIMAL(7, 2)]]:DECIMAL(7, 2)), SEARCH($4, Sarg[715, 861, 928, 942]), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_manufact_id=[$13])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.14MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[354] cpu-comparison-result=101 [max(1 (self) vs 101 (sum children))]
@@ -347,19 +353,22 @@ ImpalaSortRel(sort0=[$0], dir0=[ASC], fetch=[100:TINYINT])
     ImpalaProjectRel(I_ITEM_ID=[$5], I_ITEM_DESC=[$6], I_CURRENT_PRICE=[$7])
       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
         ImpalaJoinRel(condition=[=($2, $1)], joinType=[inner])
-          ImpalaProjectRel(inv_item_sk=[$0], inv_date_sk=[$3])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[100..500]]), IS NOT NULL($0), IS NOT NULL($3))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
+          ImpalaProjectRel(inv_item_sk=[$0], inv_date_sk=[$2])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[100..500]]), IS NOT NULL($0), IS NOT NULL($2))])
+              ImpalaProjectRel(inv_item_sk=[$0], inv_quantity_on_hand=[$2], inv_date_sk=[$3])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, inventory]])
           ImpalaProjectRel(d_date_sk=[$0])
-            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[2001-01-20:DATE..2001-03-21:DATE]]:DATE), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+            ImpalaFilterRel(condition=[AND(SEARCH($1, Sarg[[2001-01-20:DATE..2001-03-21:DATE]]:DATE), IS NOT NULL($0))])
+              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
         ImpalaJoinRel(condition=[=($0, $1)], joinType=[inner])
-          ImpalaProjectRel(cs_item_sk=[$14])
-            ImpalaFilterRel(condition=[IS NOT NULL($14)])
+          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+            ImpalaProjectRel(cs_item_sk=[$14])
               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5])
-            ImpalaFilterRel(condition=[AND(SEARCH($5, Sarg[[35.00:DECIMAL(7, 2)..65.00:DECIMAL(7, 2)]]:DECIMAL(7, 2)), SEARCH($13, Sarg[715, 861, 928, 942]), IS NOT NULL($0))])
-              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
+          ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$2], i_current_price=[$3])
+            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[35.00:DECIMAL(7, 2)..65.00:DECIMAL(7, 2)]]:DECIMAL(7, 2)), SEARCH($4, Sarg[715, 861, 928, 942]), IS NOT NULL($0))])
+              ImpalaProjectRel(i_item_sk=[$0], i_item_id=[$1], i_item_desc=[$4], i_current_price=[$5], i_manufact_id=[$13])
+                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, item]])
 F06:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.14MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[354] cpu-comparison-result=101 [max(1 (self) vs 101 (sum children))]
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q38.test b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q38.test
index 850b79c7e..f94d77311 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q38.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/calcite_tpcds/tpcds-q38.test
@@ -38,40 +38,43 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_LAST_NAME=[$6], C_FIRST_NAME=[$5], D_DATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($2))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1222..1233]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1222..1233]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_month_seq=[$3])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                   ImpalaAggRel(group=[{0, 1, 2}])
                     ImpalaProjectRel(C_LAST_NAME=[$6], C_FIRST_NAME=[$5], D_DATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sold_date_sk=[$33])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($2))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(cs_bill_customer_sk=[$2], cs_sold_date_sk=[$33])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, catalog_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1222..1233]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1222..1233]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_month_seq=[$3])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
           ImpalaAggRel(group=[{0, 1, 2}])
             ImpalaProjectRel(C_LAST_NAME=[$6], C_FIRST_NAME=[$5], D_DATE=[$3])
               ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                 ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                  ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
-                    ImpalaFilterRel(condition=[AND(IS NOT NULL($33), IS NOT NULL($3))])
+                  ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                    ImpalaProjectRel(ws_bill_customer_sk=[$3], ws_sold_date_sk=[$33])
                       ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, web_sales]])
-                  ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                    ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1222..1233]]), IS NOT NULL($0))])
-                      ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-                  ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                    ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1222..1233]]), IS NOT NULL($0))])
+                      ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_month_seq=[$3])
+                        ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                  ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
                     ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
 F00:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=151.93GB mem-reservation=189.44MB thread-reservation=1 runtime-filters-memory=51.00MB
@@ -316,40 +319,43 @@ ImpalaSortRel(fetch=[100:TINYINT])
                     ImpalaProjectRel(C_LAST_NAME=[$6], C_FIRST_NAME=[$5], D_DATE=[$3])
                       ImpalaJoinRel(condition=[=($0, $4)], joinType=[inner])
                         ImpalaJoinRel(condition=[=($1, $2)], joinType=[inner])
-                          ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
-                            ImpalaFilterRel(condition=[AND(IS NOT NULL($22), IS NOT NULL($2))])
+                          ImpalaFilterRel(condition=[AND(IS NOT NULL($1), IS NOT NULL($0))])
+                            ImpalaProjectRel(ss_customer_sk=[$2], ss_sold_date_sk=[$22])
                               ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, store_sales]])
-                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$2])
-                            ImpalaFilterRel(condition=[AND(SEARCH($3, Sarg[[1222..1233]]), IS NOT NULL($0))])
-                              ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
-                        ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
-                          ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(d_date_sk=[$0], d_date=[$1])
+                            ImpalaFilterRel(condition=[AND(SEARCH($2, Sarg[[1222..1233]]), IS NOT NULL($0))])
+                              ImpalaProjectRel(d_date_sk=[$0], d_date=[$2], d_month_seq=[$3])
+                                ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, date_dim]])
+                        ImpalaFilterRel(condition=[IS NOT NULL($0)])
+                          ImpalaProjectRel(c_customer_sk=[$0], c_first_name=[$8], c_last_name=[$9])
                             ImpalaHdfsScanRel(table=[[tpcds_partitioned_parquet_snap, customer]])
                   ImpalaAggRel(group=[{0, 1, 2}])
                     ImpalaProjectRel(C_LAST_NAME=[$6], C_FIRST_NAME=[$5], D_DATE=[$3])
... 11914 lines suppressed ...


(impala) 01/02: IMPALA-15101: Add Iceberg UUID primitive type

Posted by st...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 4d6b729d0599259fe2a3a2d517c01f81515beb43
Author: Arnab Karmakar <ar...@gmail.com>
AuthorDate: Wed Jul 22 08:16:43 2026 -0700

    IMPALA-15101: Add Iceberg UUID primitive type
    
    Introduce UUID as a new Impala primitive type with 16-byte inline tuple
    slot storage. This patch adds only the foundational type-system, parser,
    DDL analysis, and Iceberg schema mapping support needed to recognize
    UUID columns. Query execution features (read path, predicates, casts,
    aggregates) will follow in separate patches.
    
    - Add TYPE_UUID to FE/BE/thrift
    - Add UUID SQL keyword and DDL rules restricting UUID columns to Iceberg
      tables
    - Reject nested UUID types (ARRAY/MAP/STRUCT) in non-Iceberg CREATE/ALTER
      TABLE
    - Map Iceberg UUID schema fields to Impala Type.UUID for catalog/DESCRIBE
    - Add minimal UuidCompatibility matrix entries required for catalog startup
    - Defer UUID builtin registration until later patches add BE runtime support
    - Add minimal BE inline-slot plumbing and uuid-util helpers/tests
    
    Testing:
    - FE tests:
      - ParserTest for UUID type definitions in DDL and complex types
      - AnalyzeDDLTest for Iceberg CREATE/ALTER TABLE with UUID columns
      - Negative tests in AnalyzeExprsTest for UUID expressions
    - BE tests:
      - BE tests for UUID util functions
    
    Change-Id: Iefc73aefe73b6144c929ec37b0cb333007cf8bfe
    Assisted-by: Composer 2.5
    Reviewed-on: http://gerrit.cloudera.org:8080/24504
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/src/codegen/llvm-codegen.cc                     |  1 +
 be/src/exprs/anyval-util.cc                        |  6 ++
 be/src/exprs/anyval-util.h                         |  3 +
 be/src/exprs/null-literal.cc                       |  2 +-
 be/src/exprs/scalar-expr.inline.h                  |  2 +-
 be/src/exprs/scalar-fn-call.cc                     |  3 +-
 be/src/exprs/slot-ref.cc                           | 12 ++--
 be/src/runtime/descriptors.cc                      |  3 +
 be/src/runtime/types.cc                            | 13 +++-
 be/src/runtime/types.h                             | 17 ++++-
 be/src/udf/udf.h                                   |  8 ++-
 be/src/util/CMakeLists.txt                         |  2 +
 be/src/util/symbols-util.cc                        |  1 +
 be/src/util/uuid-util-test.cc                      | 84 ++++++++++++++++++++++
 be/src/util/uuid-util.h                            | 79 ++++++++++++++++++++
 common/thrift/Types.thrift                         |  1 +
 fe/src/main/cup/sql-parser.cup                     | 13 +++-
 .../impala/analysis/AlterTableAddColsStmt.java     |  5 ++
 .../impala/analysis/AlterTableAlterColStmt.java    |  4 ++
 .../impala/analysis/AlterTableReplaceColsStmt.java |  4 ++
 .../apache/impala/analysis/BinaryPredicate.java    |  2 +
 .../java/org/apache/impala/analysis/CaseExpr.java  |  2 +
 .../java/org/apache/impala/analysis/CastExpr.java  |  2 +
 .../java/org/apache/impala/analysis/ColumnDef.java |  7 ++
 .../apache/impala/analysis/CreateTableStmt.java    |  6 ++
 .../org/apache/impala/analysis/InPredicate.java    |  2 +
 .../apache/impala/analysis/IsNullPredicate.java    |  2 +
 .../java/org/apache/impala/analysis/SlotRef.java   |  3 +
 .../java/org/apache/impala/catalog/BuiltinsDb.java |  8 +++
 .../java/org/apache/impala/catalog/Column.java     |  2 +-
 .../org/apache/impala/catalog/DataSourceTable.java |  1 +
 .../java/org/apache/impala/catalog/Function.java   |  1 +
 .../org/apache/impala/catalog/PrimitiveType.java   |  2 +
 .../org/apache/impala/catalog/ScalarFunction.java  |  3 +
 .../java/org/apache/impala/catalog/ScalarType.java |  5 +-
 .../main/java/org/apache/impala/catalog/Type.java  | 42 +++++++++++
 .../apache/impala/catalog/UuidCompatibility.java   | 33 +++++++++
 .../apache/impala/util/IcebergSchemaConverter.java | 10 ++-
 fe/src/main/jflex/sql-scanner.flex                 |  1 +
 .../org/apache/impala/analysis/AnalyzeDDLTest.java | 59 ++++++++++++++-
 .../apache/impala/analysis/AnalyzeExprsTest.java   | 18 ++++-
 .../org/apache/impala/analysis/ParserTest.java     | 20 ++++++
 .../java/org/apache/impala/CompatibilityTest.java  |  7 ++
 tests/hs2/test_hs2.py                              |  2 +-
 44 files changed, 481 insertions(+), 22 deletions(-)

diff --git a/be/src/codegen/llvm-codegen.cc b/be/src/codegen/llvm-codegen.cc
index 90cdff6a2..39ad69fea 100644
--- a/be/src/codegen/llvm-codegen.cc
+++ b/be/src/codegen/llvm-codegen.cc
@@ -593,6 +593,7 @@ llvm::Type* LlvmCodeGen::GetSlotType(const ColumnType& type) {
       return string_value_type_;
     case TYPE_CHAR:
     case TYPE_FIXED_UDA_INTERMEDIATE:
+    case TYPE_UUID:
       // Represent this as an array of bytes.
       return llvm::ArrayType::get(i8_type(), type.len);
     case TYPE_TIMESTAMP:
diff --git a/be/src/exprs/anyval-util.cc b/be/src/exprs/anyval-util.cc
index 4cb9528b6..7ffb26463 100644
--- a/be/src/exprs/anyval-util.cc
+++ b/be/src/exprs/anyval-util.cc
@@ -78,6 +78,10 @@ FunctionContext::TypeDesc AnyValUtil::ColumnTypeToTypeDesc(const ColumnType& typ
       out.type = FunctionContext::TYPE_FIXED_BUFFER;
       out.len = type.len;
       break;
+    case TYPE_UUID:
+      out.type = FunctionContext::TYPE_UUID;
+      out.len = type.len;
+      break;
     case TYPE_FIXED_UDA_INTERMEDIATE:
       out.type = FunctionContext::TYPE_FIXED_UDA_INTERMEDIATE;
       out.len = type.len;
@@ -131,6 +135,8 @@ ColumnType AnyValUtil::TypeDescToColumnType(const FunctionContext::TypeDesc& typ
       return ColumnType::CreateDecimalType(type.precision, type.scale);
     case FunctionContext::TYPE_FIXED_BUFFER:
       return ColumnType::CreateCharType(type.len);
+    case FunctionContext::TYPE_UUID:
+      return ColumnType::CreateUuidType();
     case FunctionContext::TYPE_FIXED_UDA_INTERMEDIATE:
       return ColumnType::CreateFixedUdaIntermediateType(type.len);
     case FunctionContext::TYPE_VARCHAR:
diff --git a/be/src/exprs/anyval-util.h b/be/src/exprs/anyval-util.h
index f14f83526..ac9c05ad6 100644
--- a/be/src/exprs/anyval-util.h
+++ b/be/src/exprs/anyval-util.h
@@ -198,6 +198,7 @@ class AnyValUtil {
       case TYPE_STRING:
       case TYPE_VARCHAR:
       case TYPE_CHAR:
+      case TYPE_UUID:
       case TYPE_FIXED_UDA_INTERMEDIATE:
         return sizeof(StringVal);
       case TYPE_TIMESTAMP: return sizeof(TimestampVal);
@@ -222,6 +223,7 @@ class AnyValUtil {
       case TYPE_STRING:
       case TYPE_VARCHAR:
       case TYPE_CHAR:
+      case TYPE_UUID:
       case TYPE_FIXED_UDA_INTERMEDIATE:
         return alignof(StringVal);
       case TYPE_TIMESTAMP: return alignof(TimestampVal);
@@ -302,6 +304,7 @@ class AnyValUtil {
         }
         return;
       case TYPE_CHAR:
+      case TYPE_UUID:
       case TYPE_FIXED_UDA_INTERMEDIATE: {
         StringVal* sv = reinterpret_cast<StringVal*>(dst);
         sv->ptr = const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(slot));
diff --git a/be/src/exprs/null-literal.cc b/be/src/exprs/null-literal.cc
index c6edc042d..98ec030ca 100644
--- a/be/src/exprs/null-literal.cc
+++ b/be/src/exprs/null-literal.cc
@@ -75,7 +75,7 @@ DoubleVal NullLiteral::GetDoubleValInterpreted(
 
 StringVal NullLiteral::GetStringValInterpreted(
     ScalarExprEvaluator* eval, const TupleRow* row) const {
-  DCHECK(type_.IsStringType()) << type_;
+  DCHECK(type_.IsStringType() || type_.IsUuidType()) << type_;
   return StringVal::null();
 }
 
diff --git a/be/src/exprs/scalar-expr.inline.h b/be/src/exprs/scalar-expr.inline.h
index 373ab4789..5c82cfe20 100644
--- a/be/src/exprs/scalar-expr.inline.h
+++ b/be/src/exprs/scalar-expr.inline.h
@@ -60,7 +60,7 @@ SCALAR_EXPR_GET_VAL(FloatVal, type_.type == PrimitiveType::TYPE_FLOAT);
 SCALAR_EXPR_GET_VAL(DoubleVal, type_.type == PrimitiveType::TYPE_DOUBLE);
 SCALAR_EXPR_GET_VAL(TimestampVal, type_.type == PrimitiveType::TYPE_TIMESTAMP);
 SCALAR_EXPR_GET_VAL(DecimalVal, type_.type == PrimitiveType::TYPE_DECIMAL);
-SCALAR_EXPR_GET_VAL(StringVal, type_.IsStringType()
+SCALAR_EXPR_GET_VAL(StringVal, type_.IsStringType() || type_.IsUuidType()
     || type_.type == PrimitiveType::TYPE_FIXED_UDA_INTERMEDIATE);
 SCALAR_EXPR_GET_VAL(DateVal, type_.type == PrimitiveType::TYPE_DATE);
 SCALAR_EXPR_GET_VAL(CollectionVal, type_.IsCollectionType());
diff --git a/be/src/exprs/scalar-fn-call.cc b/be/src/exprs/scalar-fn-call.cc
index 290451c89..b28849a58 100644
--- a/be/src/exprs/scalar-fn-call.cc
+++ b/be/src/exprs/scalar-fn-call.cc
@@ -554,7 +554,8 @@ GET_VAL_INTERPRETED(BigIntVal, type_.type == PrimitiveType::TYPE_BIGINT);
 GET_VAL_INTERPRETED(FloatVal, type_.type == PrimitiveType::TYPE_FLOAT);
 GET_VAL_INTERPRETED(DoubleVal, type_.type == PrimitiveType::TYPE_DOUBLE);
 GET_VAL_INTERPRETED(StringVal,
-    type_.IsStringType() || type_.type == PrimitiveType::TYPE_FIXED_UDA_INTERMEDIATE);
+    type_.IsStringType() || type_.IsUuidType()
+    || type_.type == PrimitiveType::TYPE_FIXED_UDA_INTERMEDIATE);
 GET_VAL_INTERPRETED(TimestampVal, type_.type == PrimitiveType::TYPE_TIMESTAMP);
 GET_VAL_INTERPRETED(DecimalVal, type_.type == PrimitiveType::TYPE_DECIMAL);
 GET_VAL_INTERPRETED(DateVal, type_.type == PrimitiveType::TYPE_DATE);
diff --git a/be/src/exprs/slot-ref.cc b/be/src/exprs/slot-ref.cc
index 8c7686147..6f2b6f852 100644
--- a/be/src/exprs/slot-ref.cc
+++ b/be/src/exprs/slot-ref.cc
@@ -296,7 +296,8 @@ void CodegenReadingStringOrCollectionVal(LlvmCodeGen* codegen, LlvmBuilder* buil
     llvm::Value* len_ptr = builder->CreateStructGEP(nullptr, val_ptr, 1, "len_ptr");
     *len = builder->CreateLoad(len_ptr, "len");
   } else {
-    DCHECK(type.type == TYPE_CHAR || type.type == TYPE_FIXED_UDA_INTERMEDIATE);
+    DCHECK(type.type == TYPE_CHAR || type.type == TYPE_UUID
+        || type.type == TYPE_FIXED_UDA_INTERMEDIATE);
     // ptr and len are the slot and its fixed length.
     *ptr = builder->CreateBitCast(val_ptr, codegen->ptr_type());
     *len = codegen->GetI32Constant(type.len);
@@ -364,7 +365,8 @@ CodegenAnyValReadWriteInfo SlotRef::CodegenReadSlot(LlvmCodeGen* codegen,
            child_eval, row_ptr, child_entry_block);
      res.children().push_back(codegen_anyval_info);
     }
-  } else if (type_.IsStringType() || type_.type == TYPE_FIXED_UDA_INTERMEDIATE
+  } else if (type_.IsStringType() || type_.type == TYPE_UUID
+      || type_.type == TYPE_FIXED_UDA_INTERMEDIATE
       || type_.IsCollectionType()) {
     llvm::Value* ptr;
     llvm::Value* len;
@@ -492,11 +494,13 @@ SLOT_REF_GET_FUNCTION(TYPE_DOUBLE, DoubleVal, double);
 
 StringVal SlotRef::GetStringValInterpreted(
     ScalarExprEvaluator* eval, const TupleRow* row) const {
-  DCHECK(type_.IsStringType() || type_.type == TYPE_FIXED_UDA_INTERMEDIATE);
+  DCHECK(type_.IsStringType() || type_.type == TYPE_UUID
+      || type_.type == TYPE_FIXED_UDA_INTERMEDIATE);
   Tuple* t = row->GetTuple(tuple_idx_);
   if (t == NULL || t->IsNull(null_indicator_offset_)) return StringVal::null();
   StringVal result;
-  if (type_.type == TYPE_CHAR || type_.type == TYPE_FIXED_UDA_INTERMEDIATE) {
+  if (type_.type == TYPE_CHAR || type_.type == TYPE_UUID
+      || type_.type == TYPE_FIXED_UDA_INTERMEDIATE) {
     result.ptr = reinterpret_cast<uint8_t*>(t->GetSlot(slot_offset_));
     result.len = type_.len;
   } else {
diff --git a/be/src/runtime/descriptors.cc b/be/src/runtime/descriptors.cc
index 096ce793f..01453665d 100644
--- a/be/src/runtime/descriptors.cc
+++ b/be/src/runtime/descriptors.cc
@@ -765,6 +765,7 @@ void SlotDescriptor::CodegenLoadAnyVal(CodegenAnyVal* any_val, llvm::Value* raw_
       break;
     }
     case TYPE_CHAR:
+    case TYPE_UUID:
     case TYPE_FIXED_UDA_INTERMEDIATE: {
       // Convert fixed-size slot to StringVal.
       any_val->SetPtr(builder->CreateBitCast(raw_val_ptr, codegen->ptr_type()));
@@ -1037,6 +1038,7 @@ CodegenAnyValReadWriteInfo CodegenAnyValToReadWriteInfo(CodegenAnyVal& any_val,
       break;
     }
     case TYPE_CHAR:
+    case TYPE_UUID:
       rwi.SetPtrAndLen(any_val.GetPtr(), rwi.codegen()->GetI32Constant(rwi.type().len));
       break;
     case TYPE_FIXED_UDA_INTERMEDIATE:
@@ -1094,6 +1096,7 @@ void SlotDescriptor::CodegenStoreNonNullAnyVal(
       break;
     }
     case TYPE_CHAR:
+    case TYPE_UUID:
       read_write_info.codegen()->CodegenMemcpy(
           builder, raw_val_ptr, read_write_info.GetPtrAndLen().ptr, type.len);
       break;
diff --git a/be/src/runtime/types.cc b/be/src/runtime/types.cc
index 50aa1373f..51b62e1e0 100644
--- a/be/src/runtime/types.cc
+++ b/be/src/runtime/types.cc
@@ -34,6 +34,7 @@ const int ColumnType::MIN_ADJUSTED_SCALE;
 
 const int ColumnType::MAX_DECIMAL4_PRECISION;
 const int ColumnType::MAX_DECIMAL8_PRECISION;
+const int ColumnType::UUID_BYTE_LENGTH;
 
 const char* ColumnType::LLVM_CLASS_NAME = "struct.impala::ColumnType";
 
@@ -52,6 +53,8 @@ ColumnType::ColumnType(const std::vector<TTypeNode>& types, int* idx)
           || type == TYPE_FIXED_UDA_INTERMEDIATE) {
         DCHECK(scalar_type.__isset.len);
         len = scalar_type.len;
+      } else if (type == TYPE_UUID) {
+        len = UUID_BYTE_LENGTH;
       } else if (type == TYPE_STRING) {
         if (scalar_type.type == TPrimitiveType::BINARY) {
           string_val_subtype_ = StringValSubtype::BINARY;
@@ -112,6 +115,7 @@ PrimitiveType ThriftToType(TPrimitiveType::type ttype) {
     case TPrimitiveType::VARCHAR: return TYPE_VARCHAR;
     // BINARY is generally handled the same way as STRING by the backend.
     case TPrimitiveType::BINARY: return TYPE_STRING;
+    case TPrimitiveType::UUID: return TYPE_UUID;
     case TPrimitiveType::DECIMAL: return TYPE_DECIMAL;
     case TPrimitiveType::CHAR: return TYPE_CHAR;
     case TPrimitiveType::FIXED_UDA_INTERMEDIATE: return TYPE_FIXED_UDA_INTERMEDIATE;
@@ -147,6 +151,7 @@ TPrimitiveType::type ToThrift(PrimitiveType ptype, StringValSubtype subtype) {
       return TPrimitiveType::INVALID_TYPE;
     case TYPE_DECIMAL: return TPrimitiveType::DECIMAL;
     case TYPE_CHAR: return TPrimitiveType::CHAR;
+    case TYPE_UUID: return TPrimitiveType::UUID;
     case TYPE_FIXED_UDA_INTERMEDIATE: return TPrimitiveType::FIXED_UDA_INTERMEDIATE;
     case TYPE_STRUCT:
     case TYPE_ARRAY:
@@ -176,6 +181,7 @@ string TypeToString(PrimitiveType t) {
     case TYPE_BINARY: return "BINARY";
     case TYPE_DECIMAL: return "DECIMAL";
     case TYPE_CHAR: return "CHAR";
+    case TYPE_UUID: return "UUID";
     case TYPE_FIXED_UDA_INTERMEDIATE: return "FIXED_UDA_INTERMEDIATE";
     case TYPE_STRUCT: return "STRUCT";
     case TYPE_ARRAY: return "ARRAY";
@@ -205,11 +211,12 @@ string TypeToOdbcString(const TColumnType& type) {
     case TYPE_DATETIME: return "datetime";
     case TYPE_TIMESTAMP: return "timestamp";
     case TYPE_STRING:
-      if(col_type == TPrimitiveType::BINARY) {
+      if (col_type == TPrimitiveType::BINARY) {
         return "binary";
       } else {
         return "string";
       }
+    case TYPE_UUID: return "uuid";
     case TYPE_VARCHAR: return "string";
 
     case TYPE_DECIMAL: return "decimal";
@@ -276,6 +283,8 @@ string ColumnType::DebugString() const {
           DCHECK(false) << "Unexpected string subtype" << string_val_subtype_;
           return "";
       }
+    case TYPE_UUID:
+      return "UUID";
     case TYPE_CHAR:
       return Substitute("CHAR($0)", len);
     case TYPE_DECIMAL:
@@ -311,7 +320,7 @@ ostream& operator<<(ostream& os, StringValSubtype subtype) {
 }
 
 llvm::ConstantStruct* ColumnType::ToIR(LlvmCodeGen* codegen) const {
-  // ColumnType = { i32, i8, i32, i32, i32, <vector>, <vector>, <vector> }
+  // ColumnType = { i32, i32, i32, i32, <vector>, <vector>, <vector>, i8, <padding> }
   llvm::StructType* column_type_type = codegen->GetStructType<ColumnType>();
 
   DCHECK_EQ(sizeof(type), sizeof(int32_t));
diff --git a/be/src/runtime/types.h b/be/src/runtime/types.h
index 6aeeb7f4c..7823b1cb4 100644
--- a/be/src/runtime/types.h
+++ b/be/src/runtime/types.h
@@ -52,6 +52,7 @@ enum PrimitiveType {
   TYPE_CHAR,
   TYPE_VARCHAR,
   TYPE_FIXED_UDA_INTERMEDIATE,
+  TYPE_UUID,
 
   TYPE_STRUCT,
   TYPE_ARRAY,
@@ -76,10 +77,12 @@ std::string TypeToOdbcString(const TColumnType& type);
 struct ColumnType {
   PrimitiveType type;
 
-  /// Only set if type one of TYPE_CHAR, TYPE_VARCHAR, TYPE_FIXED_UDA_INTERMEDIATE.
+  /// Only set if type one of TYPE_CHAR, TYPE_VARCHAR, TYPE_FIXED_UDA_INTERMEDIATE,
+  /// TYPE_UUID.
   int len;
   static const int MAX_VARCHAR_LENGTH = (1 << 16) - 1; // 65535
   static const int MAX_CHAR_LENGTH = (1 << 8) - 1; // 255
+  static const int UUID_BYTE_LENGTH = 16;
 
   /// Only set if type == TYPE_DECIMAL
   int precision, scale;
@@ -115,6 +118,7 @@ struct ColumnType {
     DCHECK_NE(type, TYPE_ARRAY);
     DCHECK_NE(type, TYPE_MAP);
     DCHECK_NE(type, TYPE_FIXED_UDA_INTERMEDIATE);
+    DCHECK_NE(type, TYPE_UUID);
   }
 
   static ColumnType CreateCharType(int len) {
@@ -149,6 +153,13 @@ struct ColumnType {
     return ret;
   }
 
+  static ColumnType CreateUuidType() {
+    ColumnType ret;
+    ret.type = TYPE_UUID;
+    ret.len = UUID_BYTE_LENGTH;
+    return ret;
+  }
+
   static bool ValidateDecimalParams(int precision, int scale) {
     return precision >= 1 && precision <= MAX_PRECISION && scale >= 0
         && scale <= MAX_SCALE && scale <= precision;
@@ -239,6 +250,8 @@ struct ColumnType {
 
   inline StringValSubtype StringSubtype() const { return string_val_subtype_; }
 
+  inline bool IsUuidType() const { return type == TYPE_UUID; }
+
   inline bool IsComplexType() const {
     return type == TYPE_STRUCT || type == TYPE_ARRAY || type == TYPE_MAP;
   }
@@ -308,6 +321,7 @@ struct ColumnType {
         return 12;
       case TYPE_CHAR:
       case TYPE_FIXED_UDA_INTERMEDIATE:
+      case TYPE_UUID:
         return col_type.len;
       case TYPE_ARRAY:
       case TYPE_MAP:
@@ -334,6 +348,7 @@ struct ColumnType {
         return 0;
       case TYPE_CHAR:
       case TYPE_FIXED_UDA_INTERMEDIATE:
+      case TYPE_UUID:
         return col_type.len;
       case TYPE_NULL:
       case TYPE_BOOLEAN:
diff --git a/be/src/udf/udf.h b/be/src/udf/udf.h
index 89241a1e4..367bd0bfe 100644
--- a/be/src/udf/udf.h
+++ b/be/src/udf/udf.h
@@ -110,7 +110,9 @@ class FunctionContext {
     TYPE_VARCHAR,
     // A fixed-size buffer, passed as a StringVal.
     TYPE_FIXED_UDA_INTERMEDIATE,
-    TYPE_STRUCT
+    TYPE_STRUCT,
+    // 16-byte fixed buffer, passed as a StringVal.
+    TYPE_UUID
   };
 
   struct TypeDesc {
@@ -120,8 +122,8 @@ class FunctionContext {
     int precision;
     int scale;
 
-    /// Only valid if type is one of TYPE_FIXED_BUFFER, TYPE_FIXED_UDA_INTERMEDIATE or
-    /// TYPE_VARCHAR.
+    /// Only valid if type is one of TYPE_FIXED_BUFFER, TYPE_FIXED_UDA_INTERMEDIATE,
+    /// TYPE_UUID or TYPE_VARCHAR.
     int len;
   };
 
diff --git a/be/src/util/CMakeLists.txt b/be/src/util/CMakeLists.txt
index 9c9d7a717..dcf64ae9c 100644
--- a/be/src/util/CMakeLists.txt
+++ b/be/src/util/CMakeLists.txt
@@ -309,6 +309,7 @@ add_library(UtilTests STATIC
   time-test.cc
   tuple-row-compare-test.cc
   uid-util-test.cc
+  uuid-util-test.cc
   variant-util-test.cc
   version-util-test.cc
   zip-util-test.cc
@@ -388,6 +389,7 @@ ADD_UNIFIED_BE_LSAN_TEST(thread-pool-test "ThreadPoolTest.*")
 ADD_UNIFIED_BE_LSAN_TEST(time-test "TimeTest.*")
 ADD_UNIFIED_BE_LSAN_TEST(tuple-row-compare-test "TupleRowCompareTest.*")
 ADD_UNIFIED_BE_LSAN_TEST(uid-util-test "UidUtil.*")
+ADD_UNIFIED_BE_LSAN_TEST(uuid-util-test "UuidUtil.*")
 ADD_UNIFIED_BE_LSAN_TEST(variant-util-test "VariantUtilTest.*")
 ADD_UNIFIED_BE_LSAN_TEST(version-util-test "VersionUtilTest.*")
 # Using standalone webserver-test for now, nonstandard main() passes in a port.
diff --git a/be/src/util/symbols-util.cc b/be/src/util/symbols-util.cc
index c2dac6266..1a7bdecdc 100644
--- a/be/src/util/symbols-util.cc
+++ b/be/src/util/symbols-util.cc
@@ -135,6 +135,7 @@ static void AppendAnyValType(int namespace_id, const ColumnType& type, stringstr
     CASE_TYPE_APPEND_MANGLED_TOKEN(TYPE_STRING, StringVal)
     CASE_TYPE_APPEND_MANGLED_TOKEN(TYPE_VARCHAR, StringVal)
     CASE_TYPE_APPEND_MANGLED_TOKEN(TYPE_CHAR, StringVal)
+    CASE_TYPE_APPEND_MANGLED_TOKEN(TYPE_UUID, StringVal)
     CASE_TYPE_APPEND_MANGLED_TOKEN(TYPE_TIMESTAMP, TimestampVal)
     CASE_TYPE_APPEND_MANGLED_TOKEN(TYPE_DECIMAL, DecimalVal)
 
diff --git a/be/src/util/uuid-util-test.cc b/be/src/util/uuid-util-test.cc
new file mode 100644
index 000000000..6fba7daa4
--- /dev/null
+++ b/be/src/util/uuid-util-test.cc
@@ -0,0 +1,84 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#include <cstring>
+#include <string>
+
+#include "testutil/gtest-util.h"
+#include "util/uuid-util.h"
+
+namespace impala {
+
+static const uint8_t TEST_UUID_BYTES[UUID_BYTE_LEN] = {
+    0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78,
+    0x12, 0x34, 0x56, 0x78, 0x12, 0x34, 0x56, 0x78};
+
+static const char* TEST_UUID_STRING = "12345678-1234-5678-1234-567812345678";
+
+TEST(UuidUtil, UuidBytesToString) {
+  char out[UUID_STRING_LEN];
+  UuidBytesToString(TEST_UUID_BYTES, out);
+  EXPECT_EQ(std::string(out, UUID_STRING_LEN), TEST_UUID_STRING);
+}
+
+TEST(UuidUtil, ParseCanonicalUuidStringToBytesValid) {
+  uint8_t out[UUID_BYTE_LEN];
+  EXPECT_TRUE(ParseCanonicalUuidStringToBytes(
+      TEST_UUID_STRING, UUID_STRING_LEN, out));
+  EXPECT_EQ(0, memcmp(out, TEST_UUID_BYTES, UUID_BYTE_LEN));
+}
+
+TEST(UuidUtil, ParseCanonicalUuidStringToBytesUppercaseHex) {
+  const char* upper = "ABCDEFAB-CDEF-ABCD-EFAB-CDEFABCDEFAB";
+  uint8_t expected[UUID_BYTE_LEN] = {
+      0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef, 0xab, 0xcd,
+      0xef, 0xab, 0xcd, 0xef, 0xab, 0xcd, 0xef, 0xab};
+  uint8_t out[UUID_BYTE_LEN];
+  EXPECT_TRUE(ParseCanonicalUuidStringToBytes(upper, UUID_STRING_LEN, out));
+  EXPECT_EQ(0, memcmp(out, expected, UUID_BYTE_LEN));
+}
+
+TEST(UuidUtil, ParseAndFormatRoundTrip) {
+  uint8_t parsed[UUID_BYTE_LEN];
+  EXPECT_TRUE(ParseCanonicalUuidStringToBytes(
+      TEST_UUID_STRING, UUID_STRING_LEN, parsed));
+
+  char formatted[UUID_STRING_LEN];
+  UuidBytesToString(parsed, formatted);
+  EXPECT_EQ(std::string(formatted, UUID_STRING_LEN), TEST_UUID_STRING);
+}
+
+TEST(UuidUtil, ParseCanonicalUuidStringToBytesInvalidLength) {
+  uint8_t out[UUID_BYTE_LEN];
+  EXPECT_FALSE(ParseCanonicalUuidStringToBytes("short", 5, out));
+  EXPECT_FALSE(ParseCanonicalUuidStringToBytes(
+      TEST_UUID_STRING, UUID_STRING_LEN - 1, out));
+}
+
+TEST(UuidUtil, ParseCanonicalUuidStringToBytesInvalidDashPosition) {
+  uint8_t out[UUID_BYTE_LEN];
+  const char* bad_dash = "1234567811234-5678-1234-567812345678";
+  EXPECT_FALSE(ParseCanonicalUuidStringToBytes(bad_dash, UUID_STRING_LEN, out));
+}
+
+TEST(UuidUtil, ParseCanonicalUuidStringToBytesInvalidCharacter) {
+  uint8_t out[UUID_BYTE_LEN];
+  const char* bad_hex = "12345678-1234-5678-1234-56781234567g";
+  EXPECT_FALSE(ParseCanonicalUuidStringToBytes(bad_hex, UUID_STRING_LEN, out));
+}
+
+} // namespace impala
diff --git a/be/src/util/uuid-util.h b/be/src/util/uuid-util.h
new file mode 100644
index 000000000..9b93a3228
--- /dev/null
+++ b/be/src/util/uuid-util.h
@@ -0,0 +1,79 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#pragma once
+
+#include <cstdint>
+
+namespace impala {
+
+/// Size of a canonical UUID string: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+static constexpr int UUID_STRING_LEN = 36;
+/// Size of UUID raw byte representation
+static constexpr int UUID_BYTE_LEN = 16;
+
+inline int HexCharToNibble(char c) {
+  if (c >= '0' && c <= '9') return c - '0';
+  if (c >= 'a' && c <= 'f') return c - 'a' + 10;
+  if (c >= 'A' && c <= 'F') return c - 'A' + 10;
+  return -1;
+}
+
+/// Converts 16 raw UUID bytes to canonical lowercase hex string (36 chars).
+/// 'out' must have space for at least UUID_STRING_LEN bytes.
+inline void UuidBytesToString(const uint8_t* bytes, char* out) {
+  static const char hex[] = "0123456789abcdef";
+  // Group sizes: 4-2-2-2-6 bytes = 8-4-4-4-12 hex chars with dashes
+  static const int group_sizes[] = {4, 2, 2, 2, 6};
+  int pos = 0;
+  int byte_idx = 0;
+  for (int g = 0; g < 5; ++g) {
+    if (g > 0) out[pos++] = '-';
+    for (int i = 0; i < group_sizes[g]; ++i) {
+      out[pos++] = hex[(bytes[byte_idx] >> 4) & 0x0f];
+      out[pos++] = hex[bytes[byte_idx] & 0x0f];
+      ++byte_idx;
+    }
+  }
+}
+
+/// Parses a canonical UUID string into 16 raw bytes. Returns false on invalid input.
+inline bool ParseCanonicalUuidStringToBytes(const char* str, int len, uint8_t* out) {
+  if (len != UUID_STRING_LEN) return false;
+  static const int dash_positions[] = {8, 13, 18, 23};
+  int dash_idx = 0;
+  int byte_idx = 0;
+  int hi = -1;
+  for (int i = 0; i < len; ++i) {
+    if (dash_idx < 4 && i == dash_positions[dash_idx]) {
+      if (str[i] != '-') return false;
+      ++dash_idx;
+      continue;
+    }
+    int nibble = HexCharToNibble(str[i]);
+    if (nibble < 0) return false;
+    if (hi < 0) {
+      hi = nibble;
+    } else {
+      out[byte_idx++] = static_cast<uint8_t>((hi << 4) | nibble);
+      hi = -1;
+    }
+  }
+  return byte_idx == UUID_BYTE_LEN && hi < 0;
+}
+
+} // namespace impala
diff --git a/common/thrift/Types.thrift b/common/thrift/Types.thrift
index d57028a81..502dda50b 100644
--- a/common/thrift/Types.thrift
+++ b/common/thrift/Types.thrift
@@ -52,6 +52,7 @@ enum TPrimitiveType {
   CHAR = 15
   VARCHAR = 16
   FIXED_UDA_INTERMEDIATE = 17
+  UUID = 18
 }
 
 enum TTypeNodeType {
diff --git a/fe/src/main/cup/sql-parser.cup b/fe/src/main/cup/sql-parser.cup
index b5df9777f..56d6c3718 100755
--- a/fe/src/main/cup/sql-parser.cup
+++ b/fe/src/main/cup/sql-parser.cup
@@ -94,7 +94,8 @@ parser code {:
     return (
         tokenId == SqlParserSymbols.KW_DEFAULT ||
         tokenId == SqlParserSymbols.KW_KILL ||
-        tokenId == SqlParserSymbols.KW_QUERY
+        tokenId == SqlParserSymbols.KW_QUERY ||
+        tokenId == SqlParserSymbols.KW_UUID
     );
   }
 
@@ -352,8 +353,8 @@ terminal
   KW_SYSTEM_TIME, KW_SYSTEM_VERSION, KW_TABLE, KW_TABLES, KW_TABLESAMPLE, KW_TBLPROPERTIES,
   KW_TERMINATED, KW_TEXTFILE, KW_THEN, KW_TIMESTAMP, KW_TINYINT, KW_TRUNCATE, KW_STATS,
   KW_TO, KW_TRAILING, KW_TRUE, KW_UDF, KW_UNBOUNDED, KW_UNCACHED, KW_UNION, KW_UNIQUE, KW_UNKNOWN,
-  KW_UNNEST, KW_UNPIVOT, KW_UNSET, KW_UPDATE, KW_UPDATE_FN, KW_UPSERT, KW_USE, KW_USING, KW_VALIDATE,
-  KW_VALUES, KW_VARCHAR, KW_VIEW, KW_VIEWS, KW_WHEN, KW_WHERE, KW_WITH, KW_ZORDER;
+  KW_UNNEST, KW_UNPIVOT, KW_UNSET, KW_UPDATE, KW_UPDATE_FN, KW_UPSERT, KW_USE, KW_USING, KW_UUID,
+  KW_VALIDATE, KW_VALUES, KW_VARCHAR, KW_VIEW, KW_VIEWS, KW_WHEN, KW_WHERE, KW_WITH, KW_ZORDER;
 
 terminal UNUSED_RESERVED_WORD;
 
@@ -4509,6 +4510,8 @@ type ::=
   {: RESULT = Type.STRING; :}
   | KW_BINARY
   {: RESULT = Type.BINARY; :}
+  | KW_UUID
+  {: RESULT = Type.UUID; :}
   | KW_CHAR LPAREN INTEGER_LITERAL:len RPAREN
   {: RESULT = ScalarType.createCharType(len.intValue()); :}
   | KW_DECIMAL LPAREN INTEGER_LITERAL:precision RPAREN
@@ -4558,6 +4561,8 @@ ident_or_unreserved ::=
   {: RESULT = name.toString(); :}
   | KW_QUERY:name
   {: RESULT = name.toString(); :}
+  | KW_UUID:name
+  {: RESULT = name.toString(); :}
   ;
 
 word ::=
@@ -5033,6 +5038,8 @@ word ::=
   {: RESULT = r.toString(); :}
   | KW_USING:r
   {: RESULT = r.toString(); :}
+  | KW_UUID:r
+  {: RESULT = r.toString(); :}
   | KW_VALIDATE:r
   {: RESULT = r.toString(); :}
   | KW_VALUES:r
diff --git a/fe/src/main/java/org/apache/impala/analysis/AlterTableAddColsStmt.java b/fe/src/main/java/org/apache/impala/analysis/AlterTableAddColsStmt.java
index c175ae21b..cd99764d9 100644
--- a/fe/src/main/java/org/apache/impala/analysis/AlterTableAddColsStmt.java
+++ b/fe/src/main/java/org/apache/impala/analysis/AlterTableAddColsStmt.java
@@ -106,6 +106,11 @@ public class AlterTableAddColsStmt extends AlterTableStmt {
         throw new AnalysisException("Duplicate column name: " + colName);
       }
 
+      if (!(t instanceof FeIcebergTable) && c.getType().containsUuid()) {
+        throw new AnalysisException(
+            "UUID type is only supported for Iceberg tables.");
+      }
+
       if (t instanceof FeKuduTable) {
         if (c.getType().isComplexType()) {
           throw new AnalysisException("Kudu tables do not support complex types: " +
diff --git a/fe/src/main/java/org/apache/impala/analysis/AlterTableAlterColStmt.java b/fe/src/main/java/org/apache/impala/analysis/AlterTableAlterColStmt.java
index 970a76e21..00c4c4d4f 100644
--- a/fe/src/main/java/org/apache/impala/analysis/AlterTableAlterColStmt.java
+++ b/fe/src/main/java/org/apache/impala/analysis/AlterTableAlterColStmt.java
@@ -150,6 +150,10 @@ public class AlterTableAlterColStmt extends AlterTableStmt {
     isAlterColumnOptionsStmt_ = alterColumnSetStmt;
     // Check that the new column def's name is valid.
     newColDef_.analyze(analyzer);
+    if (!(t instanceof FeIcebergTable) && newColDef_.getType().containsUuid()) {
+      throw new AnalysisException(
+          "UUID type is only supported for Iceberg tables.");
+    }
     // Verify that if the column name is being changed, the new name doesn't conflict
     // with an existing column.
     if (!colName_.toLowerCase().equals(newColDef_.getColName().toLowerCase()) &&
diff --git a/fe/src/main/java/org/apache/impala/analysis/AlterTableReplaceColsStmt.java b/fe/src/main/java/org/apache/impala/analysis/AlterTableReplaceColsStmt.java
index 8f39b91ea..2c761841f 100644
--- a/fe/src/main/java/org/apache/impala/analysis/AlterTableReplaceColsStmt.java
+++ b/fe/src/main/java/org/apache/impala/analysis/AlterTableReplaceColsStmt.java
@@ -83,6 +83,10 @@ public class AlterTableReplaceColsStmt extends AlterTableStmt {
     Set<String> colNames = new HashSet<>();
     for (ColumnDef c: columnDefs_) {
       c.analyze(analyzer);
+      if (!(t instanceof FeIcebergTable) && c.getType().containsUuid()) {
+        throw new AnalysisException(
+            "UUID type is only supported for Iceberg tables.");
+      }
       String colName = c.getColName().toLowerCase();
       if (existingPartitionKeys.contains(colName)) {
         throw new AnalysisException(
diff --git a/fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java b/fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java
index 2582536ba..8cddb2ef9 100644
--- a/fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java
+++ b/fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java
@@ -126,6 +126,8 @@ public class BinaryPredicate extends Predicate {
   public static void initBuiltins(Db db) {
     for (Type t: Type.getSupportedTypes()) {
       if (t.isNull()) continue; // NULL is handled through type promotion.
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
       db.addBuiltin(ScalarFunction.createBuiltinOperator(
           Operator.EQ.getName(), Lists.newArrayList(t, t), Type.BOOLEAN));
       db.addBuiltin(ScalarFunction.createBuiltinOperator(
diff --git a/fe/src/main/java/org/apache/impala/analysis/CaseExpr.java b/fe/src/main/java/org/apache/impala/analysis/CaseExpr.java
index 15dab916f..654b18898 100644
--- a/fe/src/main/java/org/apache/impala/analysis/CaseExpr.java
+++ b/fe/src/main/java/org/apache/impala/analysis/CaseExpr.java
@@ -176,6 +176,8 @@ public class CaseExpr extends Expr {
   public static void initBuiltins(Db db) {
     for (Type t: Type.getSupportedTypes()) {
       if (t.isNull()) continue;
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
       if (t.isScalarType(PrimitiveType.CHAR)) continue;
       // TODO: case is special and the signature cannot be represented.
       // It is alternating varargs
diff --git a/fe/src/main/java/org/apache/impala/analysis/CastExpr.java b/fe/src/main/java/org/apache/impala/analysis/CastExpr.java
index 5b55a1fec..c2bfff190 100644
--- a/fe/src/main/java/org/apache/impala/analysis/CastExpr.java
+++ b/fe/src/main/java/org/apache/impala/analysis/CastExpr.java
@@ -122,6 +122,8 @@ public class CastExpr extends Expr {
       if (fromType.isNull()) continue;
       for (Type toType : Type.getSupportedTypes()) {
         if (toType.isNull()) continue;
+        // TODO: Add UUID cast builtin support.
+        if (fromType.isUuid() || toType.isUuid()) continue;
         // Disable casting from string to boolean
         if (fromType.isStringType() && toType.isBoolean()) continue;
         // Casting from date is only allowed when to-type is timestamp or string.
diff --git a/fe/src/main/java/org/apache/impala/analysis/ColumnDef.java b/fe/src/main/java/org/apache/impala/analysis/ColumnDef.java
index 64933775a..ecf41c26d 100644
--- a/fe/src/main/java/org/apache/impala/analysis/ColumnDef.java
+++ b/fe/src/main/java/org/apache/impala/analysis/ColumnDef.java
@@ -322,6 +322,13 @@ public class ColumnDef {
         }
       }
 
+      // UUID columns require UUID-typed default literals only.
+      if (type_.isUuid() && defaultValLiteral.getType().isString()) {
+        throw new AnalysisException(String.format("Default value %s (type: %s) " +
+            "is not compatible with column '%s' (type: %s).", defaultValue_.toSql(),
+            defaultValue_.getType().toSql(), colName_, type_.toSql()));
+      }
+
       TypeCompatibility compatibility =
           analyzer.getRegularCompatibilityLevel(TypeCompatibility.STRICT);
       if (!Type.isImplicitlyCastable(defaultValLiteral.getType(), type_, compatibility)) {
diff --git a/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java b/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
index 5c050b836..60064bfc4 100644
--- a/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
+++ b/fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java
@@ -327,6 +327,12 @@ public class CreateTableStmt extends StatementBase implements SingleTableStmt {
         throw new AnalysisException(
             "PARTITIONED BY SPEC is only valid for Iceberg tables.");
       }
+      for (ColumnDef col : getColumnDefs()) {
+        if (col.getType().containsUuid()) {
+          throw new AnalysisException(
+              "UUID type is only supported for Iceberg tables.");
+        }
+      }
     }
 
     if (getFileFormat() == THdfsFileFormat.JDBC) {
diff --git a/fe/src/main/java/org/apache/impala/analysis/InPredicate.java b/fe/src/main/java/org/apache/impala/analysis/InPredicate.java
index 10ee64188..1128ebbe5 100644
--- a/fe/src/main/java/org/apache/impala/analysis/InPredicate.java
+++ b/fe/src/main/java/org/apache/impala/analysis/InPredicate.java
@@ -50,6 +50,8 @@ public class InPredicate extends Predicate {
   public static void initBuiltins(Db db) {
     for (Type t: Type.getSupportedTypes()) {
       if (t.isNull()) continue;
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
       // TODO we do not support codegen for CHAR and the In predicate must be codegened
       // because it has variable number of arguments. This will force CHARs to be
       // cast up to strings; meaning that "in" comparisons will not have CHAR comparison
diff --git a/fe/src/main/java/org/apache/impala/analysis/IsNullPredicate.java b/fe/src/main/java/org/apache/impala/analysis/IsNullPredicate.java
index e21be4966..ab79fc485 100644
--- a/fe/src/main/java/org/apache/impala/analysis/IsNullPredicate.java
+++ b/fe/src/main/java/org/apache/impala/analysis/IsNullPredicate.java
@@ -60,6 +60,8 @@ public class IsNullPredicate extends Predicate {
   public static void initBuiltins(Db db) {
     for (Type t: Type.getSupportedTypes()) {
       if (t.isNull()) continue;
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
       String isNullSymbol;
       if (t.isBoolean()) {
         isNullSymbol = "_ZN6impala15IsNullPredicate6IsNullIN10impala_udf10BooleanValE" +
diff --git a/fe/src/main/java/org/apache/impala/analysis/SlotRef.java b/fe/src/main/java/org/apache/impala/analysis/SlotRef.java
index 8dbeac1ef..3bd303b67 100644
--- a/fe/src/main/java/org/apache/impala/analysis/SlotRef.java
+++ b/fe/src/main/java/org/apache/impala/analysis/SlotRef.java
@@ -171,6 +171,9 @@ public class SlotRef extends Expr {
       // HMS string.
       throw new UnsupportedFeatureException("Unsupported type in '" + toSql() + "'.");
     }
+    if (type_.isUuid()) {
+      throw new AnalysisException("Reading UUID columns is not yet supported.");
+    }
     // Register columns of a catalog table for column masking.
     if (!resolvedPath_.getMatchedTypes().isEmpty()) {
       analyzer.registerColumnForMasking(desc_);
diff --git a/fe/src/main/java/org/apache/impala/catalog/BuiltinsDb.java b/fe/src/main/java/org/apache/impala/catalog/BuiltinsDb.java
index 042f80f48..5c67820cb 100644
--- a/fe/src/main/java/org/apache/impala/catalog/BuiltinsDb.java
+++ b/fe/src/main/java/org/apache/impala/catalog/BuiltinsDb.java
@@ -1002,6 +1002,8 @@ public class BuiltinsDb extends Db {
       if (t.isNull()) continue; // NULL is handled through type promotion.
       if (t.isScalarType(PrimitiveType.CHAR)) continue; // promoted to STRING
       if (t.isScalarType(PrimitiveType.VARCHAR)) continue; // promoted to STRING
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
 
       // Count
       db.addBuiltin(AggregateFunction.createBuiltin(db, "count",
@@ -1038,6 +1040,8 @@ public class BuiltinsDb extends Db {
       if (t.isScalarType(PrimitiveType.CHAR)) continue; // promoted to STRING
       if (t.isScalarType(PrimitiveType.VARCHAR)) continue; // promoted to STRING
       if (t.isBinary()) continue; // Only supported for count/min/max
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
 
       // Sample
       db.addBuiltin(AggregateFunction.createBuiltin(db, "sample",
@@ -1699,6 +1703,8 @@ public class BuiltinsDb extends Db {
       if (t.isScalarType(PrimitiveType.VARCHAR)) continue; // promoted to STRING
       // BINARY is not supported for analytic functions.
       if (t.isBinary()) continue;
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
       db.addBuiltin(AggregateFunction.createAnalyticBuiltin(
           db, "first_value", Lists.newArrayList(t), t, t,
           t.isStringType() ? initNullString : initNull,
@@ -1774,6 +1780,8 @@ public class BuiltinsDb extends Db {
         /*isAnalyticFn=*/ false, /*returnsNonNullOnEmpty=*/ true));
     // grouping() can take any grouping expression as input.
     for (Type t: Type.getSupportedTypes()) {
+      // TODO: Add UUID builtin support.
+      if (t.isUuid()) continue;
       db.addBuiltin(AggregateFunction.createRewrittenBuiltin(db, "grouping",
           Lists.newArrayList(t), Type.TINYINT, /*ignoresDistinct=*/ true,
           /*isAnalyticFn=*/ false, /*returnsNonNullOnEmpty=*/ true));
diff --git a/fe/src/main/java/org/apache/impala/catalog/Column.java b/fe/src/main/java/org/apache/impala/catalog/Column.java
index 9ab4615ed..b78a98718 100644
--- a/fe/src/main/java/org/apache/impala/catalog/Column.java
+++ b/fe/src/main/java/org/apache/impala/catalog/Column.java
@@ -166,7 +166,7 @@ public class Column {
       @Override
       public FieldSchema apply(Column column) {
         Preconditions.checkNotNull(column.getType());
-        return new FieldSchema(column.getName(), column.getType().toSql().toLowerCase(),
+        return new FieldSchema(column.getName(), column.getType().toHiveMetastoreType(),
             column.getComment());
       }
     });
diff --git a/fe/src/main/java/org/apache/impala/catalog/DataSourceTable.java b/fe/src/main/java/org/apache/impala/catalog/DataSourceTable.java
index 0d5ba9fe2..a7b52ff18 100644
--- a/fe/src/main/java/org/apache/impala/catalog/DataSourceTable.java
+++ b/fe/src/main/java/org/apache/impala/catalog/DataSourceTable.java
@@ -162,6 +162,7 @@ public class DataSourceTable extends Table implements FeDataSourceTable {
       case DATE:
         return true;
       case BINARY:
+      case UUID:
       case CHAR:
       case DATETIME:
       case INVALID_TYPE:
diff --git a/fe/src/main/java/org/apache/impala/catalog/Function.java b/fe/src/main/java/org/apache/impala/catalog/Function.java
index 6c842fad2..cc323be07 100644
--- a/fe/src/main/java/org/apache/impala/catalog/Function.java
+++ b/fe/src/main/java/org/apache/impala/catalog/Function.java
@@ -543,6 +543,7 @@ public class Function extends CatalogObjectImpl {
     case CHAR:
     case FIXED_UDA_INTERMEDIATE:
     case BINARY:
+    case UUID:
       // These types are marshaled into a StringVal.
       return "StringVal";
     case TIMESTAMP:
diff --git a/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java b/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java
index d759bcea6..549536a03 100644
--- a/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java
+++ b/fe/src/main/java/org/apache/impala/catalog/PrimitiveType.java
@@ -42,6 +42,7 @@ public enum PrimitiveType {
   STRING("STRING", 12, TPrimitiveType.STRING),
   VARCHAR("VARCHAR", 12, TPrimitiveType.VARCHAR),
   BINARY("BINARY", 12, TPrimitiveType.BINARY),
+  UUID("UUID", 16, TPrimitiveType.UUID),
 
   // For decimal at the highest precision, the BE uses 16 bytes.
   DECIMAL("DECIMAL", 16, TPrimitiveType.DECIMAL),
@@ -89,6 +90,7 @@ public enum PrimitiveType {
       case CHAR: return CHAR;
       case DECIMAL: return DECIMAL;
       case BINARY: return BINARY;
+      case UUID: return UUID;
       case FIXED_UDA_INTERMEDIATE: return FIXED_UDA_INTERMEDIATE;
     }
     return INVALID_TYPE;
diff --git a/fe/src/main/java/org/apache/impala/catalog/ScalarFunction.java b/fe/src/main/java/org/apache/impala/catalog/ScalarFunction.java
index 9e56482a6..e9951243b 100644
--- a/fe/src/main/java/org/apache/impala/catalog/ScalarFunction.java
+++ b/fe/src/main/java/org/apache/impala/catalog/ScalarFunction.java
@@ -143,6 +143,9 @@ public class ScalarFunction extends Function {
         case BINARY:
           beFn += "_StringVal";
           break;
+        case UUID:
+          beFn += "_Uuid";
+          break;
         case CHAR:
           beFn += "_Char";
           break;
diff --git a/fe/src/main/java/org/apache/impala/catalog/ScalarType.java b/fe/src/main/java/org/apache/impala/catalog/ScalarType.java
index 4872caabd..0f6d816b7 100644
--- a/fe/src/main/java/org/apache/impala/catalog/ScalarType.java
+++ b/fe/src/main/java/org/apache/impala/catalog/ScalarType.java
@@ -85,6 +85,7 @@ public class ScalarType extends Type {
       case STRING: return STRING;
       case VARCHAR: return createVarcharType();
       case BINARY: return BINARY;
+      case UUID: return UUID;
       case TIMESTAMP: return TIMESTAMP;
       case DATE: return DATE;
       case DATETIME: return DATETIME;
@@ -308,7 +309,7 @@ public class ScalarType extends Type {
         || type_ == PrimitiveType.DOUBLE || type_ == PrimitiveType.DATE
         || type_ == PrimitiveType.DATETIME || type_ == PrimitiveType.TIMESTAMP
         || type_ == PrimitiveType.CHAR || type_ == PrimitiveType.DECIMAL
-        || type_ == PrimitiveType.FIXED_UDA_INTERMEDIATE;
+        || type_ == PrimitiveType.FIXED_UDA_INTERMEDIATE || type_ == PrimitiveType.UUID;
   }
 
   @Override
@@ -331,6 +332,8 @@ public class ScalarType extends Type {
       case TIMESTAMP:
       // Hive allows BINARY partition columns, but it is buggy at the moment: HIVE-12680
       case BINARY:
+      // UUID is only supported in Iceberg tables; HMS partition columns don't support it.
+      case UUID:
         return false;
       default:
         return true;
diff --git a/fe/src/main/java/org/apache/impala/catalog/Type.java b/fe/src/main/java/org/apache/impala/catalog/Type.java
index 3b9afe79a..dc646970c 100644
--- a/fe/src/main/java/org/apache/impala/catalog/Type.java
+++ b/fe/src/main/java/org/apache/impala/catalog/Type.java
@@ -61,6 +61,7 @@ public abstract class Type {
   public static final ScalarType DOUBLE = new ScalarType(PrimitiveType.DOUBLE);
   public static final ScalarType STRING = new ScalarType(PrimitiveType.STRING);
   public static final ScalarType BINARY = new ScalarType(PrimitiveType.BINARY);
+  public static final ScalarType UUID = new ScalarType(PrimitiveType.UUID);
   public static final ScalarType TIMESTAMP = new ScalarType(PrimitiveType.TIMESTAMP);
   public static final ScalarType DATE = new ScalarType(PrimitiveType.DATE);
   public static final ScalarType DATETIME = new ScalarType(PrimitiveType.DATETIME);
@@ -111,6 +112,7 @@ public abstract class Type {
     supportedTypes.add(DECIMAL);
     supportedTypes.add(DATE);
     supportedTypes.add(BINARY);
+    supportedTypes.add(UUID);
 
     unsupportedTypes = new ArrayList<>();
     unsupportedTypes.add(DATETIME);
@@ -151,6 +153,7 @@ public abstract class Type {
       case STRING: return STRING;
       case VARCHAR: return VARCHAR;
       case BINARY: return BINARY;
+      case UUID: return UUID;
       case DECIMAL: return DECIMAL;
       case CHAR: return CHAR;
       case FIXED_UDA_INTERMEDIATE: return FIXED_UDA_INTERMEDIATE;
@@ -164,6 +167,18 @@ public abstract class Type {
    */
   public final String toSql() { return toSql(0); }
 
+  /**
+   * Type string stored in the Hive Metastore for table columns. HMS does not support all
+   * Impala types (e.g. UUID is Iceberg-only), so those are mapped to compatible HMS
+   * types here while Impala retains the native type from Iceberg metadata.
+   */
+  public String toHiveMetastoreType() {
+    if (isUuid()) {
+      return "string";
+    }
+    return toSql().toLowerCase();
+  }
+
   /**
    * Recursive helper for toSql() to be implemented by subclasses. Keeps track of the
    * nesting depth and terminates the recursion if MAX_NESTING_DEPTH is reached.
@@ -193,6 +208,7 @@ public abstract class Type {
   public boolean isVarchar() { return isScalarType(PrimitiveType.VARCHAR); }
   public boolean isString() { return isScalarType(PrimitiveType.STRING); }
   public boolean isBinary() { return isScalarType(PrimitiveType.BINARY); }
+  public boolean isUuid() { return isScalarType(PrimitiveType.UUID); }
   public boolean isVarLenStringType() { return isVarchar() || isString() || isBinary(); }
   public boolean isWildcardDecimal() { return false; }
   public boolean isWildcardVarchar() { return false; }
@@ -283,6 +299,27 @@ public abstract class Type {
     return false;
   }
 
+  /**
+   * Returns true if this type is UUID or contains a UUID type (recursively).
+   */
+  public boolean containsUuid() {
+    if (isUuid()) return true;
+    if (isArrayType()) {
+      return ((ArrayType) this).getItemType().containsUuid();
+    }
+    if (isMapType()) {
+      MapType mapType = (MapType) this;
+      return mapType.getKeyType().containsUuid() ||
+          mapType.getValueType().containsUuid();
+    }
+    if (isStructType()) {
+      for (StructField field : ((StructType) this).getFields()) {
+        if (field.getType().containsUuid()) return true;
+      }
+    }
+    return false;
+  }
+
   /**
    * Returns true if Impala supports this type in the metdata. It does not mean we
    * can manipulate data of this type. For tables that contain columns with these
@@ -557,6 +594,7 @@ public abstract class Type {
    * For datetime types this is the length in characters of the String representation
    * (assuming the maximum allowed precision of the fractional seconds component).
    * For binary data this is the length in bytes.
+   * For UUID this is the canonical string display length in characters (36).
    * Null is returned for for data types where the column size is not applicable.
    */
   public Integer getColumnSize() {
@@ -567,6 +605,8 @@ public abstract class Type {
       case STRING:
       case BINARY:
         return Integer.MAX_VALUE;
+      case UUID:
+        return 36;
       case TIMESTAMP:
         return 29;
       case DATE:
@@ -695,6 +735,7 @@ public abstract class Type {
       case CHAR: return java.sql.Types.CHAR;
       case VARCHAR: return java.sql.Types.VARCHAR;
       case BINARY: return java.sql.Types.BINARY;
+      case UUID: return java.sql.Types.VARCHAR;
       case DECIMAL: return java.sql.Types.DECIMAL;
       case FIXED_UDA_INTERMEDIATE: return java.sql.Types.BINARY;
       default:
@@ -743,6 +784,7 @@ public abstract class Type {
     List<CompatibilityRule> defaultCompatibilityRules = new ArrayList<>();
     defaultCompatibilityRules.add(new DiagonalCompatibility());
     defaultCompatibilityRules.add(new BinaryCompatibility());
+    defaultCompatibilityRules.add(new UuidCompatibility());
     defaultCompatibilityRules.add(new FixedUdaCompatibility());
     defaultCompatibilityRules.add(new DefaultCompatibility());
     defaultCompatibilityRules.add(new CheckEmptyCompatibility());
diff --git a/fe/src/main/java/org/apache/impala/catalog/UuidCompatibility.java b/fe/src/main/java/org/apache/impala/catalog/UuidCompatibility.java
new file mode 100644
index 000000000..f0f67de81
--- /dev/null
+++ b/fe/src/main/java/org/apache/impala/catalog/UuidCompatibility.java
@@ -0,0 +1,33 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.impala.catalog;
+
+import static org.apache.impala.catalog.Type.UUID;
+
+// UUID is incompatible with all other types until predicate/cast support is added.
+public class UuidCompatibility implements CompatibilityRule {
+  @Override
+  public void apply(PrimitiveType[][] matrix) {
+    for (int i = 0; i < PrimitiveType.values().length; ++i) {
+      if (i != UUID.ordinal()) {
+        matrix[UUID.ordinal()][i] = PrimitiveType.INVALID_TYPE;
+        matrix[i][UUID.ordinal()] = PrimitiveType.INVALID_TYPE;
+      }
+    }
+  }
+}
diff --git a/fe/src/main/java/org/apache/impala/util/IcebergSchemaConverter.java b/fe/src/main/java/org/apache/impala/util/IcebergSchemaConverter.java
index dde040483..db28d34f1 100644
--- a/fe/src/main/java/org/apache/impala/util/IcebergSchemaConverter.java
+++ b/fe/src/main/java/org/apache/impala/util/IcebergSchemaConverter.java
@@ -96,6 +96,8 @@ public class IcebergSchemaConverter {
         return Type.DATE;
       case BINARY:
         return Type.BINARY;
+      case UUID:
+        return Type.UUID;
       case TIMESTAMP:
         return Type.TIMESTAMP;
       case DECIMAL:
@@ -137,7 +139,7 @@ public class IcebergSchemaConverter {
     for (Types.NestedField column : schema.columns()) {
       Type colType = toImpalaType(column.type());
       // Update sd cols by iceberg NestedField
-      ret.add(new FieldSchema(column.name().toLowerCase(), colType.toSql().toLowerCase(),
+      ret.add(new FieldSchema(column.name().toLowerCase(), colType.toHiveMetastoreType(),
           column.doc()));
     }
     return ret;
@@ -366,6 +368,8 @@ public class IcebergSchemaConverter {
           return Types.DateType.get();
         case BINARY:
           return Types.BinaryType.get();
+        case UUID:
+          return Types.UUIDType.get();
         case TIMESTAMP:
           // Impala TIMESTAMP has timestamp without time zone semantics.
           return Types.TimestampType.withoutZone();
@@ -437,6 +441,10 @@ public class IcebergSchemaConverter {
         Object val = literal.value();
         return val != null ? val.toString() : null;
 
+      case UUID:
+        Object uuidVal = literal.value();
+        return uuidVal != null ? uuidVal.toString() : null;
+
       default:
         return literal.toString();
     }
diff --git a/fe/src/main/jflex/sql-scanner.flex b/fe/src/main/jflex/sql-scanner.flex
index e3a623921..873c38d23 100644
--- a/fe/src/main/jflex/sql-scanner.flex
+++ b/fe/src/main/jflex/sql-scanner.flex
@@ -302,6 +302,7 @@ import org.apache.impala.thrift.TReservedWordsVersion;
     keywordMap.put("upsert", SqlParserSymbols.KW_UPSERT);
     keywordMap.put("use", SqlParserSymbols.KW_USE);
     keywordMap.put("using", SqlParserSymbols.KW_USING);
+    keywordMap.put("uuid", SqlParserSymbols.KW_UUID);
     keywordMap.put("validate", SqlParserSymbols.KW_VALIDATE);
     keywordMap.put("values", SqlParserSymbols.KW_VALUES);
     keywordMap.put("varchar", SqlParserSymbols.KW_VARCHAR);
diff --git a/fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java b/fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java
index 3b5b89faf..22ee97277 100644
--- a/fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java
+++ b/fe/src/test/java/org/apache/impala/analysis/AnalyzeDDLTest.java
@@ -535,6 +535,62 @@ public class AnalyzeDDLTest extends FrontendTestBase {
             "functional_parquet.paimon_partitioned");
   }
 
+  @Test
+  public void TestUuidDdl() {
+    // CREATE TABLE: Iceberg tables may use UUID scalar and nested types.
+    AnalyzesOk("create table functional.ice_uuid (id UUID, name STRING) " +
+        "stored by iceberg");
+    AnalyzesOk("create table functional.ice_uuid_complex (id INT, " +
+        "uuid_array ARRAY<UUID>, uuid_map MAP<UUID, STRING>) stored by iceberg");
+    AnalyzesOk("create table functional.ice_uuid_struct (id INT, " +
+        "s STRUCT<uuid_col:UUID, name:STRING>) stored by iceberg");
+    AnalyzesOk("create table functional.ice_uuid_notnull (id UUID NOT NULL, " +
+        "name STRING) stored by iceberg");
+    AnalyzesOk("create table functional.ice_uuid_parquet (id UUID) stored by iceberg " +
+        "tblproperties ('write.format.default'='parquet')");
+    AnalyzesOk("create table functional.ice_uuid_orc (id UUID) stored by iceberg " +
+        "tblproperties ('write.format.default'='orc')");
+    AnalyzesOk("create table functional.ice_uuid_avro (id UUID) stored by iceberg " +
+        "tblproperties ('write.format.default'='avro')");
+
+    // CREATE TABLE: UUID is rejected on non-Iceberg table types.
+    AnalysisError("create table functional.uuid_hdfs (id UUID) stored as parquet",
+        "UUID type is only supported for Iceberg tables.");
+    AnalysisError("create table functional.uuid_complex_hdfs (id INT, " +
+        "uuid_array ARRAY<UUID>, uuid_map MAP<UUID, STRING>) stored as parquet",
+        "UUID type is only supported for Iceberg tables.");
+    AnalysisError("CREATE TABLE functional.uuid_paimon (id UUID) STORED BY PAIMON",
+        "UUID type is only supported for Iceberg tables.");
+
+    // CREATE TABLE: UUID cannot be used as a partition column.
+    AnalysisError("create table functional.ice_uuid_bad_part (id UUID, val INT) " +
+        "partitioned by (dt UUID) stored by iceberg",
+        "Type 'UUID' is not supported as partition-column type in column: dt");
+
+    // CREATE TABLE: STRING defaults are not accepted for UUID columns (even on Iceberg).
+    AnalysisError("create table functional.ice_uuid_default (id UUID " +
+        "DEFAULT '550e8400-e29b-41d4-a716-446655440000') stored by iceberg " +
+        "tblproperties ('format-version'='3')",
+        "Default value '550e8400-e29b-41d4-a716-446655440000' (type: STRING) " +
+        "is not compatible with column 'id' (type: UUID).");
+
+    // ALTER TABLE ADD COLUMN(S): rejected on non-Iceberg tables.
+    AnalysisError("alter table functional.alltypes add column hdfs_uuid_col UUID",
+        "UUID type is only supported for Iceberg tables.");
+    AnalysisError("alter table functional.alltypes add columns (hdfs_uuid_col UUID)",
+        "UUID type is only supported for Iceberg tables.");
+    AnalysisError("alter table functional_kudu.alltypes add column kudu_uuid_col UUID",
+        "UUID type is only supported for Iceberg tables.");
+
+    // ALTER TABLE ADD COLUMN(S): allowed on Iceberg.
+    AnalyzesOk("alter table functional_parquet.iceberg_non_partitioned " +
+        "add column uuid_col UUID");
+    AnalyzesOk("alter table functional_parquet.iceberg_partitioned " +
+        "add column uuid_col UUID NOT NULL");
+    AnalyzesOk("alter table functional_parquet.iceberg_non_partitioned " +
+        "add columns (uuid_col UUID, uuid_col2 UUID)");
+  }
+
   @Test
   public void TestAlterTableAddColumns() {
     AnalyzesOk("alter table functional.alltypes add columns (new_col int)");
@@ -1319,7 +1375,7 @@ public class AnalyzeDDLTest extends FrontendTestBase {
 
     // Test updating stats on all scalar types.
     for (Type t: Type.getSupportedTypes()) {
-      if (t.isNull()) continue;
+      if (t.isNull() || t.isUuid()) continue;
       Preconditions.checkState(t.isScalarType());
       String typeStr = t.getPrimitiveType().toString();
       if (t.getPrimitiveType() == PrimitiveType.CHAR ||
@@ -3299,6 +3355,7 @@ public class AnalyzeDDLTest extends FrontendTestBase {
     AnalysisError("CREATE TABLE DataSrcTable1 (x int) PRODUCED BY DATA SOURCE " +
         "not_a_data_src(\"\")", "Data source does not exist");
     for (Type t: Type.getSupportedTypes()) {
+      if (t.isUuid()) continue;  // UUID is only supported for Iceberg tables.
       PrimitiveType type = t.getPrimitiveType();
       if (DataSourceTable.isSupportedPrimitiveType(type) || t.isNull()) continue;
       String typeSpec = type.name();
diff --git a/fe/src/test/java/org/apache/impala/analysis/AnalyzeExprsTest.java b/fe/src/test/java/org/apache/impala/analysis/AnalyzeExprsTest.java
index d1844442a..9dfe38e86 100644
--- a/fe/src/test/java/org/apache/impala/analysis/AnalyzeExprsTest.java
+++ b/fe/src/test/java/org/apache/impala/analysis/AnalyzeExprsTest.java
@@ -381,7 +381,8 @@ public class AnalyzeExprsTest extends AnalyzerTest {
       if (type.isNull() || type.isDecimal() || type.isBoolean() || type.isDateOrTimeType()
           || type.getPrimitiveType() == PrimitiveType.VARCHAR
           || type.getPrimitiveType() == PrimitiveType.CHAR
-          || type.getPrimitiveType() == PrimitiveType.BINARY) {
+          || type.getPrimitiveType() == PrimitiveType.BINARY
+          || type.getPrimitiveType() == PrimitiveType.UUID) {
         continue;
       }
       AnalyzesOk("select cast(1.1 as " + type + ")");
@@ -3473,4 +3474,19 @@ public class AnalyzeExprsTest extends AnalyzerTest {
             + "(type: DECIMAL(9,0)) is not compatible with column "
             + "'string_col' (type: STRING)");
   }
+
+  /**
+   * UUID column reads are blocked until read support is implemented.
+   */
+  @Test
+  public void TestUuidReadNotSupported() {
+    final String uuidSubquery = "(select cast(null as uuid) u) t";
+
+    AnalysisError("select u from " + uuidSubquery,
+        "Reading UUID columns is not yet supported.");
+    AnalysisError("select u from " + uuidSubquery + " where u is null",
+        "Reading UUID columns is not yet supported.");
+    AnalysisError("select count(u) from " + uuidSubquery,
+        "Reading UUID columns is not yet supported.");
+  }
 }
diff --git a/fe/src/test/java/org/apache/impala/analysis/ParserTest.java b/fe/src/test/java/org/apache/impala/analysis/ParserTest.java
index 005673b3f..c3fe9bf42 100644
--- a/fe/src/test/java/org/apache/impala/analysis/ParserTest.java
+++ b/fe/src/test/java/org/apache/impala/analysis/ParserTest.java
@@ -3729,6 +3729,26 @@ public class ParserTest extends FrontendTestBase {
     TypeDefsError("STRUCT<'a':TINYINT>");
   }
 
+  @Test
+  public void TestUuidTypes() {
+    // Scalar UUID in DDL, CAST, and the generic complex-type shapes
+    // exercised by TypeDefsParseOk().
+    TypeDefsParseOk("UUID");
+
+    // Additional nested/complex shapes not generated by TypeDefsParseOk().
+    TypeDefsParseOk("MAP<UUID, STRING>");
+    TypeDefsParseOk("MAP<STRING, UUID>");
+    TypeDefsParseOk("STRUCT<id:UUID, name:STRING>");
+    TypeDefsParseOk("STRUCT<data:STRING, uuid:UUID COMMENT 'identifier'>");
+    TypeDefsParseOk("ARRAY<STRUCT<id:UUID, val:INT>>");
+    TypeDefsParseOk("MAP<UUID, ARRAY<STRING>>");
+    TypeDefsParseOk("STRUCT<ids:ARRAY<UUID>>");
+
+    // Full CREATE TABLE statements with Iceberg storage.
+    ParsesOk("CREATE TABLE t (id UUID, name STRING) STORED BY ICEBERG");
+    ParsesOk("CREATE TABLE t (s STRUCT<uuid_col:UUID, val:INT>) STORED BY ICEBERG");
+  }
+
   @Test
   public void TestResetMetadata() {
     ParsesOk("invalidate metadata");
diff --git a/java/calcite-planner/src/test/java/org/apache/impala/CompatibilityTest.java b/java/calcite-planner/src/test/java/org/apache/impala/CompatibilityTest.java
index e1beba915..aa3a03728 100755
--- a/java/calcite-planner/src/test/java/org/apache/impala/CompatibilityTest.java
+++ b/java/calcite-planner/src/test/java/org/apache/impala/CompatibilityTest.java
@@ -49,6 +49,13 @@ public class CompatibilityTest {
             toPType == PrimitiveType.FIXED_UDA_INTERMEDIATE) {
           continue;
         }
+        // UUID is an Iceberg-only type that is not modeled in the Calcite planner
+        // (Calcite has no native UUID type, and mapping it to VARCHAR(36) would collide
+        // with genuine VARCHAR(36) columns). UUID queries do not flow through the
+        // Calcite planner, so it is excluded from the compatibility mapping.
+        if (fromPType == PrimitiveType.UUID || toPType == PrimitiveType.UUID) {
+          continue;
+        }
         if (fromPType == PrimitiveType.FLOAT && toPType == PrimitiveType.DECIMAL) {
           continue;
         }
diff --git a/tests/hs2/test_hs2.py b/tests/hs2/test_hs2.py
index d2896c061..3e4aab34f 100644
--- a/tests/hs2/test_hs2.py
+++ b/tests/hs2/test_hs2.py
@@ -1289,7 +1289,7 @@ class TestHS2(HS2TestSuite):
     results = fetch_results_resp.results
     types = ['BOOLEAN', 'TINYINT', 'SMALLINT', 'INT', 'BIGINT', 'FLOAT', 'DOUBLE', 'DATE',
              'TIMESTAMP', 'STRING', 'VARCHAR', 'DECIMAL', 'CHAR', 'ARRAY', 'MAP',
-             'STRUCT', 'BINARY']
+             'STRUCT', 'BINARY', 'UUID']
     assert self.get_num_rows(results) == len(types)
     # Validate that each type description (result row) has the required 18 fields as
     # described in the DatabaseMetaData.getTypeInfo() documentation.