You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2023/12/17 22:39:22 UTC

(impala) 02/03: IMPALA-12601: Add a fully partitioned TPC-DS database

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

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

commit 8661f922d3ccb21da73b9f7f8734d9113429e9bb
Author: Riza Suminto <ri...@cloudera.com>
AuthorDate: Tue Dec 6 15:34:49 2022 -0800

    IMPALA-12601: Add a fully partitioned TPC-DS database
    
    The current tpcds dataset only has store_sales table fully partitioned
    and leaves the other facts table unpartitioned. This is intended for
    faster data loading during tests. However, this is not an accurate
    reflection of the larger scale TPC-DS dataset where all facts tables are
    partitioned. Impala planner may change the details of the query plan if
    a partition column exists.
    
    This patch adds a new dataset tpcds_partitioned, loading a fully
    partitioned TPC-DS db in parquet format named
    tpcds_partitioned_parquet_snap. This dataset can not be loaded
    independently and requires the base 'tpcds' db from the tpcds dataset to
    be preloaded first. An example of how to load this dataset can be seen
    at function load-tpcds-data in bin/create-load-data.sh.
    
    This patch also changes PlannerTest#testProcessingCost from targeting
    tpcds_parquet to tpcds_partitioned_parquet_snap. Other planner tests are
    that currently target tpcds_parquet will be gradually changed to test
    against tpcds_partitioned_parquet_snap in follow-up patches.
    
    This addition adds a couple of seconds in the "Computing table stats"
    step, but loading itself is negligible since it is parallelized with
    TPC-H and functional-query. The total loading time for the three
    datasets remains similar after this patch.
    
    This patch also adds several improvements in the following files:
    
    bin/load-data.py:
    - Log elapsed time on serial steps.
    
    testdata/bin/create-load-data.sh:
    - Rename MSG to LOAD_MSG to avoid collision with the same variable name
      in ./testdata/bin/run-step.sh
    
    testdata/bin/generate-schema-statements.py:
    - Remove redundant FILE_FORMAT_MAP.
    - Add build_partitioned_load to simplify expressing partitioned insert
      query in SQL template.
    
    testdata/datasets/tpcds/tpcds_schema_template.sql:
    - Reorder schema template to load all dimension tables before fact tables.
    
    Testing:
    - Pass core tests.
    
    Change-Id: I3a2e66c405639554f325ae78c66628d464f6c453
    Reviewed-on: http://gerrit.cloudera.org:8080/20756
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 bin/load-data.py                                   |   52 +-
 .../org/apache/impala/planner/PlannerTest.java     |    3 +-
 testdata/bin/compute-table-stats.sh                |    3 +-
 testdata/bin/create-load-data.sh                   |   15 +-
 testdata/bin/generate-schema-statements.py         |  126 +-
 testdata/datasets/tpcds/tpcds_schema_template.sql  |  461 +--
 testdata/datasets/tpcds_partitioned/README         |    5 +
 .../tpcds_partitioned/schema_constraints.csv       |    4 +
 .../tpcds_partitioned_schema_template.sql}         |  904 ++----
 .../queries/PlannerTest/tpcds-processing-cost.test | 3190 ++++++++++----------
 .../tpcds_partitioned/tpcds_partitioned_core.csv   |    1 +
 .../tpcds_partitioned_dimensions.csv               |    4 +
 .../tpcds_partitioned_exhaustive.csv               |    1 +
 .../tpcds_partitioned_pairwise.csv                 |    1 +
 14 files changed, 2178 insertions(+), 2592 deletions(-)

diff --git a/bin/load-data.py b/bin/load-data.py
index a4cfd5a97..729dcb95b 100755
--- a/bin/load-data.py
+++ b/bin/load-data.py
@@ -34,7 +34,7 @@ import time
 import traceback
 
 from optparse import OptionParser
-from tests.beeswax.impala_beeswax import *
+from tests.beeswax.impala_beeswax import ImpalaBeeswaxClient
 from multiprocessing.pool import ThreadPool
 
 LOG = logging.getLogger('load-data.py')
@@ -159,11 +159,17 @@ def exec_hive_query_from_file_beeline(file_name):
 
   return is_success
 
-def exec_hbase_query_from_file(file_name):
+
+def exec_hbase_query_from_file(file_name, step_name):
   if not os.path.exists(file_name): return
+  LOG.info('Begin step "%s".' % step_name)
+  start_time = time.time()
   hbase_cmd = "hbase shell %s" % file_name
   LOG.info('Executing HBase Command: %s' % hbase_cmd)
   exec_cmd(hbase_cmd, error_msg='Error executing hbase create commands')
+  total_time = time.time() - start_time
+  LOG.info('End step "%s". Total time: %.2fs\n' % (step_name, total_time))
+
 
 # KERBEROS TODO: fails when kerberized and impalad principal isn't "impala"
 def exec_impala_query_from_file(file_name):
@@ -263,7 +269,8 @@ def exec_hadoop_fs_cmd(args, exit_on_error=True):
   exec_cmd(cmd, error_msg="Error executing Hadoop command, exiting",
       exit_on_error=exit_on_error)
 
-def exec_query_files_parallel(thread_pool, query_files, execution_type):
+
+def exec_query_files_parallel(thread_pool, query_files, execution_type, step_name):
   """Executes the query files provided using the execution engine specified
      in parallel using the given thread pool. Aborts immediately if any execution
      encounters an error."""
@@ -274,16 +281,23 @@ def exec_query_files_parallel(thread_pool, query_files, execution_type):
   elif execution_type == 'hive':
     execution_function = exec_hive_query_from_file_beeline
 
+  LOG.info('Begin step "%s".' % step_name)
+  start_time = time.time()
   for result in thread_pool.imap_unordered(execution_function, query_files):
     if not result:
       thread_pool.terminate()
       sys.exit(1)
+  total_time = time.time() - start_time
+  LOG.info('End step "%s". Total time: %.2fs\n' % (step_name, total_time))
+
+
+def impala_exec_query_files_parallel(thread_pool, query_files, step_name):
+  exec_query_files_parallel(thread_pool, query_files, 'impala', step_name)
+
 
-def impala_exec_query_files_parallel(thread_pool, query_files):
-  exec_query_files_parallel(thread_pool, query_files, 'impala')
+def hive_exec_query_files_parallel(thread_pool, query_files, step_name):
+  exec_query_files_parallel(thread_pool, query_files, 'hive', step_name)
 
-def hive_exec_query_files_parallel(thread_pool, query_files):
-  exec_query_files_parallel(thread_pool, query_files, 'hive')
 
 def main():
   logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%H:%M:%S')
@@ -446,38 +460,40 @@ def main():
     # so they're done at the end. Finally, the Hbase Tables that have been filled with data
     # need to be flushed.
 
-    impala_exec_query_files_parallel(thread_pool, impala_create_files)
+    impala_exec_query_files_parallel(thread_pool, impala_create_files, "Impala Create")
 
     # There should be at most one hbase creation script
     assert(len(hbase_create_files) <= 1)
     for hbase_create in hbase_create_files:
-      exec_hbase_query_from_file(hbase_create)
+      exec_hbase_query_from_file(hbase_create, "HBase Create")
 
     # If this is loading text tables plus multiple other formats, the text tables
     # need to be loaded first
     assert(len(hive_load_text_files) <= 1)
-    hive_exec_query_files_parallel(thread_pool, hive_load_text_files)
+    hive_exec_query_files_parallel(thread_pool, hive_load_text_files, "Hive Load Text")
     # IMPALA-9923: Run ORC serially separately from other non-text formats. This hacks
-    # around flakiness seen when loading this in parallel. This should be removed as
-    # soon as possible.
+    # around flakiness seen when loading this in parallel (see IMPALA-12630 comments for
+    # broken tests). This should be removed as soon as possible.
     assert(len(hive_load_orc_files) <= 1)
-    hive_exec_query_files_parallel(thread_pool, hive_load_orc_files)
+    hive_exec_query_files_parallel(thread_pool, hive_load_orc_files, "Hive Load ORC")
 
     # Load all non-text formats (goes parallel)
-    hive_exec_query_files_parallel(thread_pool, hive_load_nontext_files)
+    hive_exec_query_files_parallel(thread_pool, hive_load_nontext_files,
+        "Hive Load Non-Text")
 
     assert(len(hbase_postload_files) <= 1)
     for hbase_postload in hbase_postload_files:
-      exec_hbase_query_from_file(hbase_postload)
+      exec_hbase_query_from_file(hbase_postload, "HBase Post-Load")
 
     # Invalidate so that Impala sees the loads done by Hive before loading Parquet/Kudu
     # Note: This only invalidates tables for this workload.
     assert(len(invalidate_files) <= 1)
     if impala_load_files:
-      impala_exec_query_files_parallel(thread_pool, invalidate_files)
-      impala_exec_query_files_parallel(thread_pool, impala_load_files)
+      impala_exec_query_files_parallel(thread_pool, invalidate_files,
+          "Impala Invalidate 1")
+      impala_exec_query_files_parallel(thread_pool, impala_load_files, "Impala Load")
     # Final invalidate for this workload
-    impala_exec_query_files_parallel(thread_pool, invalidate_files)
+    impala_exec_query_files_parallel(thread_pool, invalidate_files, "Impala Invalidate 2")
     loading_time_map[workload] = time.time() - start_time
 
   total_time = 0.0
diff --git a/fe/src/test/java/org/apache/impala/planner/PlannerTest.java b/fe/src/test/java/org/apache/impala/planner/PlannerTest.java
index 32a352752..fb2490ae7 100644
--- a/fe/src/test/java/org/apache/impala/planner/PlannerTest.java
+++ b/fe/src/test/java/org/apache/impala/planner/PlannerTest.java
@@ -1410,7 +1410,8 @@ public class PlannerTest extends PlannerTestBase {
     options.setProcessing_cost_min_threads(2);
     options.setMax_fragment_instances_per_node(16);
     runPlannerTestFile(
-        "tpcds-processing-cost", "tpcds_parquet", options, tpcdsParquetTestOptions());
+        "tpcds-processing-cost", "tpcds_partitioned_parquet_snap", options,
+        tpcdsParquetTestOptions());
   }
 
   /**
diff --git a/testdata/bin/compute-table-stats.sh b/testdata/bin/compute-table-stats.sh
index 5e887e1ef..31a06f7ae 100755
--- a/testdata/bin/compute-table-stats.sh
+++ b/testdata/bin/compute-table-stats.sh
@@ -44,5 +44,6 @@ if [ "${TARGET_FILESYSTEM}" = "hdfs" ]; then
 fi
 ${COMPUTE_STATS_SCRIPT} --db_names=tpch,tpch_parquet,tpch_orc_def \
     --table_names=customer,lineitem,nation,orders,part,partsupp,region,supplier
-${COMPUTE_STATS_SCRIPT} --db_names=tpch_nested_parquet,tpcds,tpcds_parquet
+${COMPUTE_STATS_SCRIPT} \
+    --db_names=tpch_nested_parquet,tpcds,tpcds_parquet,tpcds_partitioned_parquet_snap
 ${COMPUTE_STATS_SCRIPT} --db_names=functional_kudu,tpch_kudu
diff --git a/testdata/bin/create-load-data.sh b/testdata/bin/create-load-data.sh
index 541d88b7b..dfb8e8d58 100755
--- a/testdata/bin/create-load-data.sh
+++ b/testdata/bin/create-load-data.sh
@@ -234,12 +234,12 @@ function load-data {
   TABLE_FORMATS=${3:-}
   FORCE_LOAD=${4:-}
 
-  MSG="Loading workload '$WORKLOAD'"
+  LOAD_MSG="Loading workload '$WORKLOAD'"
   ARGS=("--workloads $WORKLOAD")
-  MSG+=" using exploration strategy '$EXPLORATION_STRATEGY'"
+  LOAD_MSG+=" using exploration strategy '$EXPLORATION_STRATEGY'"
   ARGS+=("-e $EXPLORATION_STRATEGY")
   if [ $TABLE_FORMATS ]; then
-    MSG+=" in table formats '$TABLE_FORMATS'"
+    LOAD_MSG+=" in table formats '$TABLE_FORMATS'"
     ARGS+=("--table_formats $TABLE_FORMATS")
   fi
   if [ $LOAD_DATA_ARGS ]; then
@@ -282,7 +282,7 @@ function load-data {
   fi
 
   LOG_FILE=${IMPALA_DATA_LOADING_LOGS_DIR}/${LOG_BASENAME}
-  echo "$MSG. Logging to ${LOG_FILE}"
+  echo "$LOAD_MSG. Logging to ${LOG_FILE}"
   # Use unbuffered logging by executing with -u
   if ! impala-python -u ${IMPALA_HOME}/bin/load-data.py ${ARGS[@]} &> ${LOG_FILE}; then
     echo Error loading data. The end of the log file is:
@@ -291,6 +291,11 @@ function load-data {
   fi
 }
 
+function load-tpcds-data {
+  load-data "tpcds" "core"
+  load-data "tpcds_partitioned" "core"
+}
+
 function cache-test-tables {
   echo CACHING  tpch.nation AND functional.alltypestiny
   # uncaching the tables first makes this operation idempotent.
@@ -570,7 +575,7 @@ if [ $SKIP_METADATA_LOAD -eq 0 ]; then
   run-step-backgroundable "Loading functional-query data" load-functional-query.log \
       load-data "functional-query" "exhaustive"
   run-step-backgroundable "Loading TPC-H data" load-tpch.log load-data "tpch" "core"
-  run-step-backgroundable "Loading TPC-DS data" load-tpcds.log load-data "tpcds" "core"
+  run-step-backgroundable "Loading TPC-DS data" load-tpcds.log load-tpcds-data
   run-step-wait-all
   # Load tpch nested data.
   # TODO: Hacky and introduces more complexity into the system, but it is expedient.
diff --git a/testdata/bin/generate-schema-statements.py b/testdata/bin/generate-schema-statements.py
index bd498d429..134bd3ff7 100755
--- a/testdata/bin/generate-schema-statements.py
+++ b/testdata/bin/generate-schema-statements.py
@@ -96,23 +96,19 @@
 #
 from __future__ import absolute_import, division, print_function
 from builtins import object
-import collections
-import csv
-import glob
 import json
-import math
 import os
-import random
 import re
 import shutil
 import subprocess
 import sys
 import tempfile
-from itertools import product
 from optparse import OptionParser
 from tests.common.environ import HIVE_MAJOR_VERSION
-from tests.util.test_file_parser import *
-from tests.common.test_dimensions import *
+from tests.util.test_file_parser import parse_table_constraints, parse_test_file
+from tests.common.test_dimensions import (
+  FILE_FORMAT_TO_STORED_AS_MAP, TableFormatInfo, get_dataset_from_workload,
+  load_table_info_dimension)
 
 parser = OptionParser()
 parser.add_option("-e", "--exploration_strategy", dest="exploration_strategy",
@@ -195,20 +191,6 @@ AVRO_COMPRESSION_MAP = {
   'none': '',
   }
 
-FILE_FORMAT_MAP = {
-  'text': 'TEXTFILE',
-  'seq': 'SEQUENCEFILE',
-  'rc': 'RCFILE',
-  'orc': 'ORC',
-  'parquet': 'PARQUET',
-  'hudiparquet': 'HUDIPARQUET',
-  'avro': 'AVRO',
-  'hbase': "'org.apache.hadoop.hive.hbase.HBaseStorageHandler'",
-  'kudu': "KUDU",
-  'iceberg': "ICEBERG",
-  'json': "JSONFILE",
-  }
-
 HIVE_TO_AVRO_TYPE_MAP = {
   'STRING': 'string',
   'INT': 'int',
@@ -240,6 +222,14 @@ WITH SERDEPROPERTIES (
 
 KNOWN_EXPLORATION_STRATEGIES = ['core', 'pairwise', 'exhaustive']
 
+PARTITIONED_INSERT_RE = re.compile(
+  # Capture multi insert specification.
+  # Each group represent partition column, min value, max value,
+  # and num partition per insert.
+  r'-- partitioned_insert: ([a-z_]+),(\d+),(\d+),(\d+)')
+
+HINT_SHUFFLE = "/* +shuffle, clustered */"
+
 def build_create_statement(table_template, table_name, db_name, db_suffix,
                            file_format, compression, hdfs_location,
                            force_reload):
@@ -257,11 +247,12 @@ def build_create_statement(table_template, table_name, db_name, db_suffix,
     # Remove location part from the format string
     table_template = table_template.replace("LOCATION '{hdfs_location}'", "")
 
-  create_stmt += table_template.format(db_name=db_name,
-                                       db_suffix=db_suffix,
-                                       table_name=table_name,
-                                       file_format=FILE_FORMAT_MAP[file_format],
-                                       hdfs_location=hdfs_location)
+  create_stmt += table_template.format(
+    db_name=db_name,
+    db_suffix=db_suffix,
+    table_name=table_name,
+    file_format=FILE_FORMAT_TO_STORED_AS_MAP[file_format],
+    hdfs_location=hdfs_location)
   return create_stmt
 
 
@@ -473,17 +464,59 @@ def build_impala_parquet_codec_statement(codec):
   parquet_codec = IMPALA_PARQUET_COMPRESSION_MAP[codec]
   return IMPALA_COMPRESSION_CODEC % parquet_codec
 
+
+def build_partitioned_load(insert, re_match, can_hint, params):
+  part_col = re_match.group(1)
+  min_val = int(re_match.group(2))
+  max_val = int(re_match.group(3))
+  batch = int(re_match.group(4))
+  insert = PARTITIONED_INSERT_RE.sub("", insert)
+  statements = []
+  params["hint"] = HINT_SHUFFLE if can_hint else ''
+  first_part = min_val
+  while first_part < max_val:
+    if first_part + batch >= max_val:
+      # This is the last batch
+      if first_part == min_val:
+        # There is only 1 batch in this insert. No predicate needed.
+        params["part_predicate"] = ''
+      else:
+        # Insert the remaining partitions + NULL partition
+        params["part_predicate"] = "WHERE {0} <= {1} OR {2} IS NULL".format(
+          first_part, part_col, part_col)
+    elif first_part == min_val:
+      # This is the first batch.
+      params["part_predicate"] = "WHERE {0} < {1}".format(
+        part_col, first_part + batch)
+    else:
+      # This is the middle batch.
+      params["part_predicate"] = "WHERE {0} <= {1} AND {2} < {3}".format(
+        first_part, part_col, part_col, first_part + batch)
+    statements.append(insert.format(**params))
+    first_part += batch
+  return "\n".join(statements)
+
+
 def build_insert_into_statement(insert, db_name, db_suffix, table_name, file_format,
                                 hdfs_path, for_impala=False):
-  insert_hint = ""
-  if for_impala and (file_format == 'parquet' or is_iceberg_table(file_format)):
-    insert_hint = "/* +shuffle, clustered */"
-  insert_statement = insert.format(db_name=db_name,
-                                   db_suffix=db_suffix,
-                                   table_name=table_name,
-                                   hdfs_location=hdfs_path,
-                                   impala_home=os.getenv("IMPALA_HOME"),
-                                   hint=insert_hint)
+  can_hint = for_impala and (file_format == 'parquet' or is_iceberg_table(file_format))
+  params = {
+    "db_name": db_name,
+    "db_suffix": db_suffix,
+    "table_name": table_name,
+    "hdfs_location": hdfs_path,
+    "impala_home": os.getenv("IMPALA_HOME"),
+    "hint": "",
+    "part_predicate": ""
+  }
+
+  m = PARTITIONED_INSERT_RE.search(insert)
+  if m:
+    insert_statement = build_partitioned_load(insert, m, can_hint, params)
+  else:
+    if can_hint:
+      params["hint"] = HINT_SHUFFLE
+    insert_statement = insert.format(**params)
 
   # Kudu tables are managed and don't support OVERWRITE, so we replace OVERWRITE
   # with INTO to make this a regular INSERT.
@@ -539,6 +572,7 @@ def build_insert(insert, db_name, db_suffix, file_format,
                                         for_impala) + "\n"
   return output
 
+
 def build_load_statement(load_template, db_name, db_suffix, table_name):
   # hbase does not need the hdfs path.
   if table_name.startswith('hbase'):
@@ -547,12 +581,24 @@ def build_load_statement(load_template, db_name, db_suffix, table_name):
                                          db_suffix=db_suffix)
   else:
     base_load_dir = os.getenv("REMOTE_LOAD", os.getenv("IMPALA_HOME"))
-    load_template = load_template.format(table_name=table_name,
-                                         db_name=db_name,
-                                         db_suffix=db_suffix,
-                                         impala_home = base_load_dir)
+    params = {
+      "db_name": db_name,
+      "db_suffix": db_suffix,
+      "table_name": table_name,
+      "impala_home": base_load_dir,
+      "hint": "",
+      "part_predicate": ""
+    }
+
+    m = PARTITIONED_INSERT_RE.search(load_template)
+    if m:
+      load_template = build_partitioned_load(load_template, m, False, params)
+    else:
+      load_template = load_template.format(**params)
+
   return load_template
 
+
 def build_hbase_create_stmt(db_name, table_name, column_families, region_splits):
   hbase_table_name = "{db_name}_hbase.{table_name}".format(db_name=db_name,
                                                            table_name=table_name)
diff --git a/testdata/datasets/tpcds/tpcds_schema_template.sql b/testdata/datasets/tpcds/tpcds_schema_template.sql
index 167d5566f..42a573595 100644
--- a/testdata/datasets/tpcds/tpcds_schema_template.sql
+++ b/testdata/datasets/tpcds/tpcds_schema_template.sql
@@ -306,30 +306,6 @@ OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
 ---- DATASET
 tpcds
 ---- BASE_TABLE_NAME
-inventory
----- COLUMNS
-inv_date_sk                int
-inv_item_sk                bigint
-inv_warehouse_sk           int
-inv_quantity_on_hand       int
-primary key (inv_date_sk, inv_item_sk, inv_warehouse_sk) DISABLE NOVALIDATE RELY
-foreign key (inv_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (inv_item_sk) references {db_name}{db_suffix}.item (i_item_sk) DISABLE NOVALIDATE RELY
-foreign key (inv_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/inventory/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
----- BASE_TABLE_NAME
 call_center
 ---- COLUMNS
 cc_call_center_sk         int
@@ -536,6 +512,117 @@ OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
 ---- DATASET
 tpcds
 ---- BASE_TABLE_NAME
+web_page
+---- COLUMNS
+wp_web_page_sk            int
+wp_web_page_id            string
+wp_rec_start_date         string
+wp_rec_end_date           string
+wp_creation_date_sk       int
+wp_access_date_sk         int
+wp_autogen_flag           string
+wp_customer_sk            int
+wp_url                    string
+wp_type                   string
+wp_char_count             int
+wp_link_count             int
+wp_image_count            int
+wp_max_ad_count           int
+primary key (wp_web_page_sk) DISABLE NOVALIDATE RELY
+foreign key (wp_creation_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (wp_access_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (wp_customer_sk) references {db_name}{db_suffix}.customer (c_customer_sk) DISABLE NOVALIDATE RELY
+---- ROW_FORMAT
+delimited fields terminated by '|'
+---- TABLE_PROPERTIES
+text:serialization.null.format=
+---- DEPENDENT_LOAD
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
+SELECT * FROM {db_name}.{table_name};
+---- LOAD
+LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_page/'
+OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+====
+---- DATASET
+tpcds
+---- BASE_TABLE_NAME
+web_site
+---- COLUMNS
+web_site_sk           int
+web_site_id           string
+web_rec_start_date    string
+web_rec_end_date      string
+web_name              string
+web_open_date_sk      int
+web_close_date_sk     int
+web_class             string
+web_manager           string
+web_mkt_id            int
+web_mkt_class         string
+web_mkt_desc          string
+web_market_manager    string
+web_company_id        int
+web_company_name      string
+web_street_number     string
+web_street_name       string
+web_street_type       string
+web_suite_number      string
+web_city              string
+web_county            string
+web_state             string
+web_zip               string
+web_country           string
+web_gmt_offset        decimal(5,2)
+web_tax_percentage    decimal(5,2)
+primary key (web_site_sk) DISABLE NOVALIDATE RELY
+foreign key (web_open_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (web_close_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+---- ROW_FORMAT
+delimited fields terminated by '|'
+---- TABLE_PROPERTIES
+text:serialization.null.format=
+---- DEPENDENT_LOAD
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
+SELECT * FROM {db_name}.{table_name};
+---- LOAD
+LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_site/'
+OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+====
+---- DATASET
+tpcds
+---- BASE_TABLE_NAME
+inventory
+---- COLUMNS
+inv_date_sk                int
+inv_item_sk                bigint
+inv_warehouse_sk           int
+inv_quantity_on_hand       int
+primary key (inv_date_sk, inv_item_sk, inv_warehouse_sk) DISABLE NOVALIDATE RELY
+foreign key (inv_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (inv_item_sk) references {db_name}{db_suffix}.item (i_item_sk) DISABLE NOVALIDATE RELY
+foreign key (inv_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
+---- ROW_FORMAT
+delimited fields terminated by '|'
+---- TABLE_PROPERTIES
+text:serialization.null.format=
+---- DEPENDENT_LOAD
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
+SELECT * FROM {db_name}.{table_name};
+---- LOAD
+set hive.exec.max.dynamic.partitions.pernode=10000;
+set hive.exec.max.dynamic.partitions=10000;
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.exec.dynamic.partition=true;
+set hive.optimize.sort.dynamic.partition=true;
+set hive.optimize.sort.dynamic.partition.threshold=1;
+set hive.exec.reducers.max=32;
+
+LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/inventory/'
+OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+====
+---- DATASET
+tpcds
+---- BASE_TABLE_NAME
 catalog_sales
 ---- COLUMNS
 cs_sold_date_sk           int
@@ -747,89 +834,8 @@ delimited fields terminated by '|'
 ---- TABLE_PROPERTIES
 text:serialization.null.format=
 ---- DEPENDENT_LOAD
--- Split the load into multiple steps to reduce total memory usage for larger
--- scale factors. TODO: Dynamically scale this based on the scale factor?
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE ss_sold_date_sk IS NULL;
-
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE ss_sold_date_sk < 2451272;
-
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE 2451272 <= ss_sold_date_sk and ss_sold_date_sk < 2451728;
-
+-- partitioned_insert: ss_sold_date_sk,2450800,2452700,450
+-- TODO: Dynamically scale this based on the scale factor?
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
 {hint} SELECT ss_sold_time_sk,
   ss_item_sk,
@@ -855,158 +861,12 @@ INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date
   ss_net_profit,
   ss_sold_date_sk
 FROM {db_name}.{table_name}
-WHERE 2451728 <= ss_sold_date_sk and ss_sold_date_sk < 2452184;
-
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE 2452184 <= ss_sold_date_sk;
+{part_predicate};
 ---- LOAD
-USE {db_name};
-
-set hive.exec.max.dynamic.partitions.pernode=10000;
-set hive.exec.max.dynamic.partitions=10000;
-set hive.exec.dynamic.partition.mode=nonstrict;
-set hive.exec.dynamic.partition=true;
-set hive.optimize.sort.dynamic.partition=true;
-set hive.optimize.sort.dynamic.partition.threshold=1;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE ss_sold_date_sk IS NULL
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE ss_sold_date_sk < 2451272
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE 2451272 <= ss_sold_date_sk and ss_sold_date_sk < 2451728
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE 2451728 <= ss_sold_date_sk and ss_sold_date_sk < 2452184
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
+-- partitioned_insert: ss_sold_date_sk,2450800,2452700,450
+-- TODO: Dynamically scale this based on the scale factor?
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
+SELECT ss_sold_time_sk,
   ss_item_sk,
   ss_customer_sk,
   ss_cdemo_sk,
@@ -1029,9 +889,9 @@ select ss_sold_time_sk,
   ss_net_paid_inc_tax,
   ss_net_profit,
   ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE 2452184 <= ss_sold_date_sk
-distribute by ss_sold_date_sk;
+FROM {db_name}.store_sales_unpartitioned
+{part_predicate}
+DISTRIBUTE BY ss_sold_date_sk;
 ====
 ---- DATASET
 tpcds
@@ -1083,85 +943,6 @@ OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
 ---- DATASET
 tpcds
 ---- BASE_TABLE_NAME
-web_page
----- COLUMNS
-wp_web_page_sk            int
-wp_web_page_id            string
-wp_rec_start_date         string
-wp_rec_end_date           string
-wp_creation_date_sk       int
-wp_access_date_sk         int
-wp_autogen_flag           string
-wp_customer_sk            int
-wp_url                    string
-wp_type                   string
-wp_char_count             int
-wp_link_count             int
-wp_image_count            int
-wp_max_ad_count           int
-primary key (wp_web_page_sk) DISABLE NOVALIDATE RELY
-foreign key (wp_creation_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (wp_access_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (wp_customer_sk) references {db_name}{db_suffix}.customer (c_customer_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_page/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
----- BASE_TABLE_NAME
-web_site
----- COLUMNS
-web_site_sk           int
-web_site_id           string
-web_rec_start_date    string
-web_rec_end_date      string
-web_name              string
-web_open_date_sk      int
-web_close_date_sk     int
-web_class             string
-web_manager           string
-web_mkt_id            int
-web_mkt_class         string
-web_mkt_desc          string
-web_market_manager    string
-web_company_id        int
-web_company_name      string
-web_street_number     string
-web_street_name       string
-web_street_type       string
-web_suite_number      string
-web_city              string
-web_county            string
-web_state             string
-web_zip               string
-web_country           string
-web_gmt_offset        decimal(5,2)
-web_tax_percentage    decimal(5,2)
-primary key (web_site_sk) DISABLE NOVALIDATE RELY
-foreign key (web_open_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (web_close_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_site/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
----- BASE_TABLE_NAME
 web_sales
 ---- COLUMNS
 ws_sold_date_sk           int
diff --git a/testdata/datasets/tpcds_partitioned/README b/testdata/datasets/tpcds_partitioned/README
new file mode 100644
index 000000000..65e559b72
--- /dev/null
+++ b/testdata/datasets/tpcds_partitioned/README
@@ -0,0 +1,5 @@
+This dataset is a fully-partitioned version of tpcds dataset.
+This dataset can not be loaded independently and requires the base
+'tpcds' db from the tpcds dataset to be preloaded first. An example of
+how to load this dataset can be seen at function load-tpcds-data in
+bin/create-load-data.sh.
\ No newline at end of file
diff --git a/testdata/datasets/tpcds_partitioned/schema_constraints.csv b/testdata/datasets/tpcds_partitioned/schema_constraints.csv
new file mode 100644
index 000000000..ed855fea2
--- /dev/null
+++ b/testdata/datasets/tpcds_partitioned/schema_constraints.csv
@@ -0,0 +1,4 @@
+# Table level constraints:
+# Allows for defining constraints on which file formats to generate for an individual
+# table. The table name should match the base table name defined in the schema template
+# file.
diff --git a/testdata/datasets/tpcds/tpcds_schema_template.sql b/testdata/datasets/tpcds_partitioned/tpcds_partitioned_schema_template.sql
similarity index 68%
copy from testdata/datasets/tpcds/tpcds_schema_template.sql
copy to testdata/datasets/tpcds_partitioned/tpcds_partitioned_schema_template.sql
index 167d5566f..235a0f2b7 100644
--- a/testdata/datasets/tpcds/tpcds_schema_template.sql
+++ b/testdata/datasets/tpcds_partitioned/tpcds_partitioned_schema_template.sql
@@ -18,7 +18,7 @@
 # For details on this file format please see ../README
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 time_dim
 ---- COLUMNS
@@ -33,19 +33,12 @@ t_shift                   string
 t_sub_shift               string
 t_meal_time               string
 primary key (t_time_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/time_dim/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 date_dim
 ---- COLUMNS
@@ -78,19 +71,12 @@ d_current_month           string
 d_current_quarter         string
 d_current_year            string
 primary key (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/date_dim/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 reason
 ---- COLUMNS
@@ -98,19 +84,12 @@ r_reason_sk           int
 r_reason_id           string
 r_reason_desc         string
 primary key (r_reason_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/reason/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 customer_address
 ---- COLUMNS
@@ -128,19 +107,12 @@ ca_country                string
 ca_gmt_offset             decimal(5,2)
 ca_location_type          string
 primary key (ca_address_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/customer_address/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 income_band
 ---- COLUMNS
@@ -148,19 +120,12 @@ ib_income_band_sk         int
 ib_lower_bound            int
 ib_upper_bound            int
 primary key (ib_income_band_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/income_band/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 household_demographics
 ---- COLUMNS
@@ -171,20 +136,12 @@ hd_dep_count              int
 hd_vehicle_count          int
 primary key (hd_demo_sk) DISABLE NOVALIDATE RELY
 foreign key (hd_income_band_sk) references {db_name}{db_suffix}.income_band (ib_income_band_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH
-'{impala_home}/testdata/impala-data/{db_name}/household_demographics/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 customer_demographics
 ---- COLUMNS
@@ -198,20 +155,12 @@ cd_dep_count              int
 cd_dep_employed_count     int
 cd_dep_college_count      int
 primary key (cd_demo_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH
-'{impala_home}/testdata/impala-data/{db_name}/customer_demographics/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 ship_mode
 ---- COLUMNS
@@ -222,19 +171,12 @@ sm_code                   string
 sm_carrier                string
 sm_contract               string
 primary key (sm_ship_mode_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/ship_mode/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 item
 ---- COLUMNS
@@ -261,19 +203,12 @@ i_container               string
 i_manager_id              int
 i_product_name            string
 primary key (i_item_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/item/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 warehouse
 ---- COLUMNS
@@ -292,43 +227,12 @@ w_zip                     string
 w_country                 string
 w_gmt_offset              decimal(5,2)
 primary key (w_warehouse_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/warehouse/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
----- BASE_TABLE_NAME
-inventory
----- COLUMNS
-inv_date_sk                int
-inv_item_sk                bigint
-inv_warehouse_sk           int
-inv_quantity_on_hand       int
-primary key (inv_date_sk, inv_item_sk, inv_warehouse_sk) DISABLE NOVALIDATE RELY
-foreign key (inv_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (inv_item_sk) references {db_name}{db_suffix}.item (i_item_sk) DISABLE NOVALIDATE RELY
-foreign key (inv_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/inventory/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 call_center
 ---- COLUMNS
@@ -366,20 +270,12 @@ cc_tax_percentage         decimal(5,2)
 primary key (cc_call_center_sk) DISABLE NOVALIDATE RELY
 foreign key (cc_closed_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
 foreign key (cc_open_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH
-'{impala_home}/testdata/impala-data/{db_name}/call_center/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 customer
 ---- COLUMNS
@@ -407,19 +303,12 @@ foreign key (c_current_cdemo_sk) references {db_name}{db_suffix}.customer_demogr
 foreign key (c_current_hdemo_sk) references {db_name}{db_suffix}.household_demographics (hd_demo_sk) DISABLE NOVALIDATE RELY
 foreign key (c_first_sales_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
 foreign key (c_first_shipto_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/customer/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 promotion
 ---- COLUMNS
@@ -446,19 +335,12 @@ primary key (p_promo_sk) DISABLE NOVALIDATE RELY
 foreign key (p_start_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
 foreign key (p_end_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
 foreign key (p_item_sk) references {db_name}{db_suffix}.item (i_item_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/promotion/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 store
 ---- COLUMNS
@@ -493,19 +375,12 @@ s_gmt_offset              decimal(5,2)
 s_tax_precentage          decimal(5,2)
 primary key (s_store_sk) DISABLE NOVALIDATE RELY
 foreign key (s_closed_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/store/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 catalog_page
 ---- COLUMNS
@@ -521,24 +396,112 @@ cp_type                   string
 primary key (cp_catalog_page_sk) DISABLE NOVALIDATE RELY
 foreign key (cp_start_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
 foreign key (cp_end_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH
-'{impala_home}/testdata/impala-data/{db_name}/catalog_page/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+SELECT * FROM tpcds.{table_name};
+====
+---- DATASET
+tpcds_partitioned
+---- BASE_TABLE_NAME
+web_page
+---- COLUMNS
+wp_web_page_sk            int
+wp_web_page_id            string
+wp_rec_start_date         string
+wp_rec_end_date           string
+wp_creation_date_sk       int
+wp_access_date_sk         int
+wp_autogen_flag           string
+wp_customer_sk            int
+wp_url                    string
+wp_type                   string
+wp_char_count             int
+wp_link_count             int
+wp_image_count            int
+wp_max_ad_count           int
+primary key (wp_web_page_sk) DISABLE NOVALIDATE RELY
+foreign key (wp_creation_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (wp_access_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (wp_customer_sk) references {db_name}{db_suffix}.customer (c_customer_sk) DISABLE NOVALIDATE RELY
+---- DEPENDENT_LOAD
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
+SELECT * FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
+---- BASE_TABLE_NAME
+web_site
+---- COLUMNS
+web_site_sk           int
+web_site_id           string
+web_rec_start_date    string
+web_rec_end_date      string
+web_name              string
+web_open_date_sk      int
+web_close_date_sk     int
+web_class             string
+web_manager           string
+web_mkt_id            int
+web_mkt_class         string
+web_mkt_desc          string
+web_market_manager    string
+web_company_id        int
+web_company_name      string
+web_street_number     string
+web_street_name       string
+web_street_type       string
+web_suite_number      string
+web_city              string
+web_county            string
+web_state             string
+web_zip               string
+web_country           string
+web_gmt_offset        decimal(5,2)
+web_tax_percentage    decimal(5,2)
+primary key (web_site_sk) DISABLE NOVALIDATE RELY
+foreign key (web_open_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (web_close_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+---- DEPENDENT_LOAD
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
+SELECT * FROM tpcds.{table_name};
+====
+---- DATASET
+tpcds_partitioned
+---- BASE_TABLE_NAME
+inventory
+---- COLUMNS
+inv_item_sk                bigint
+inv_warehouse_sk           int
+inv_quantity_on_hand       int
+primary key (inv_item_sk, inv_warehouse_sk) DISABLE NOVALIDATE RELY
+foreign key (inv_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
+foreign key (inv_item_sk) references {db_name}{db_suffix}.item (i_item_sk) DISABLE NOVALIDATE RELY
+foreign key (inv_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
+---- PARTITION_COLUMNS
+inv_date_sk                int
+---- DEPENDENT_LOAD
+-- The following query options are set to optimize small scale fact tables with 3 impalads.
+-- Small MAX_SCAN_RANGE_LENGTH will split 1 file into few scan ranges that can be
+-- distributed across 3 impalads in minicluster. Without this, only 1 fragment at 1
+-- impalad does the reading and writing.
+SET MAX_SCAN_RANGE_LENGTH=1mb;
+-- MT_DOP=4 is to increase number of scanner and writer to 12 at max for single insert
+-- overwrite query.
+SET MT_DOP=4;
+
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} partition(inv_date_sk)
+SELECT
+  inv_item_sk,
+  inv_warehouse_sk,
+  inv_quantity_on_hand,
+  inv_date_sk
+FROM tpcds.{table_name};
+====
+---- DATASET
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 catalog_sales
 ---- COLUMNS
-cs_sold_date_sk           int
 cs_sold_time_sk           int
 cs_ship_date_sk           int
 cs_bill_customer_sk       int
@@ -590,24 +553,52 @@ foreign key (cs_ship_mode_sk) references {db_name}{db_suffix}.ship_mode (sm_ship
 foreign key (cs_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
 foreign key (cs_item_sk) references {db_name}{db_suffix}.item (i_item_sk) DISABLE NOVALIDATE RELY
 foreign key (cs_promo_sk) references {db_name}{db_suffix}.promotion (p_promo_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
+---- PARTITION_COLUMNS
+cs_sold_date_sk           int
 ---- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH
-'{impala_home}/testdata/impala-data/{db_name}/catalog_sales/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} partition(cs_sold_date_sk)
+SELECT
+  cs_sold_time_sk,
+  cs_ship_date_sk,
+  cs_bill_customer_sk,
+  cs_bill_cdemo_sk,
+  cs_bill_hdemo_sk,
+  cs_bill_addr_sk,
+  cs_ship_customer_sk,
+  cs_ship_cdemo_sk,
+  cs_ship_hdemo_sk,
+  cs_ship_addr_sk,
+  cs_call_center_sk,
+  cs_catalog_page_sk,
+  cs_ship_mode_sk,
+  cs_warehouse_sk,
+  cs_item_sk,
+  cs_promo_sk,
+  cs_order_number,
+  cs_quantity,
+  cs_wholesale_cost,
+  cs_list_price,
+  cs_sales_price,
+  cs_ext_discount_amt,
+  cs_ext_sales_price,
+  cs_ext_wholesale_cost,
+  cs_ext_list_price,
+  cs_ext_tax,
+  cs_coupon_amt,
+  cs_ext_ship_cost,
+  cs_net_paid,
+  cs_net_paid_inc_tax,
+  cs_net_paid_inc_ship,
+  cs_net_paid_inc_ship_tax,
+  cs_net_profit,
+  cs_sold_date_sk
+FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 catalog_returns
 ---- COLUMNS
-cr_returned_date_sk       int
 cr_returned_time_sk       int
 cr_item_sk                bigint
 cr_refunded_customer_sk   int
@@ -652,59 +643,42 @@ foreign key (cr_ship_mode_sk) references {db_name}{db_suffix}.ship_mode (sm_ship
 foreign key (cr_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
 foreign key (cr_reason_sk) references {db_name}{db_suffix}.reason (r_reason_sk) DISABLE NOVALIDATE RELY
 foreign key (cr_item_sk, cr_order_number) references {db_name}{db_suffix}.catalog_sales (cs_item_sk, cs_order_number) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH
-'{impala_home}/testdata/impala-data/{db_name}/catalog_returns/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
----- BASE_TABLE_NAME
-store_sales_unpartitioned
----- COLUMNS
-ss_sold_date_sk           int
-ss_sold_time_sk           int
-ss_item_sk                bigint
-ss_customer_sk            int
-ss_cdemo_sk               int
-ss_hdemo_sk               int
-ss_addr_sk                int
-ss_store_sk               int
-ss_promo_sk               int
-ss_ticket_number          bigint
-ss_quantity               int
-ss_wholesale_cost         decimal(7,2)
-ss_list_price             decimal(7,2)
-ss_sales_price            decimal(7,2)
-ss_ext_discount_amt       decimal(7,2)
-ss_ext_sales_price        decimal(7,2)
-ss_ext_wholesale_cost     decimal(7,2)
-ss_ext_list_price         decimal(7,2)
-ss_ext_tax                decimal(7,2)
-ss_coupon_amt             decimal(7,2)
-ss_net_paid               decimal(7,2)
-ss_net_paid_inc_tax       decimal(7,2)
-ss_net_profit             decimal(7,2)
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
+---- PARTITION_COLUMNS
+cr_returned_date_sk       int
 ---- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/store_sales/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} partition(cr_returned_date_sk)
+SELECT
+  cr_returned_time_sk,
+  cr_item_sk,
+  cr_refunded_customer_sk,
+  cr_refunded_cdemo_sk,
+  cr_refunded_hdemo_sk,
+  cr_refunded_addr_sk,
+  cr_returning_customer_sk,
+  cr_returning_cdemo_sk,
+  cr_returning_hdemo_sk,
+  cr_returning_addr_sk,
+  cr_call_center_sk,
+  cr_catalog_page_sk,
+  cr_ship_mode_sk,
+  cr_warehouse_sk,
+  cr_reason_sk,
+  cr_order_number,
+  cr_return_quantity,
+  cr_return_amount,
+  cr_return_tax,
+  cr_return_amt_inc_tax,
+  cr_fee,
+  cr_return_ship_cost,
+  cr_refunded_cash,
+  cr_reversed_charge,
+  cr_store_credit,
+  cr_net_loss,
+  cr_returned_date_sk
+FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 store_sales
 ---- COLUMNS
@@ -742,42 +716,9 @@ foreign key (ss_store_sk) references {db_name}{db_suffix}.store (s_store_sk) DIS
 foreign key (ss_promo_sk) references {db_name}{db_suffix}.promotion (p_promo_sk) DISABLE NOVALIDATE RELY
 ---- PARTITION_COLUMNS
 ss_sold_date_sk int
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
 ---- DEPENDENT_LOAD
--- Split the load into multiple steps to reduce total memory usage for larger
--- scale factors. TODO: Dynamically scale this based on the scale factor?
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE ss_sold_date_sk IS NULL;
-
 INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
+SELECT ss_sold_time_sk,
   ss_item_sk,
   ss_customer_sk,
   ss_cdemo_sk,
@@ -800,245 +741,13 @@ INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date
   ss_net_paid_inc_tax,
   ss_net_profit,
   ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE ss_sold_date_sk < 2451272;
-
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE 2451272 <= ss_sold_date_sk and ss_sold_date_sk < 2451728;
-
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE 2451728 <= ss_sold_date_sk and ss_sold_date_sk < 2452184;
-
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} PARTITION (ss_sold_date_sk)
-{hint} SELECT ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-FROM {db_name}.{table_name}
-WHERE 2452184 <= ss_sold_date_sk;
----- LOAD
-USE {db_name};
-
-set hive.exec.max.dynamic.partitions.pernode=10000;
-set hive.exec.max.dynamic.partitions=10000;
-set hive.exec.dynamic.partition.mode=nonstrict;
-set hive.exec.dynamic.partition=true;
-set hive.optimize.sort.dynamic.partition=true;
-set hive.optimize.sort.dynamic.partition.threshold=1;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE ss_sold_date_sk IS NULL
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE ss_sold_date_sk < 2451272
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE 2451272 <= ss_sold_date_sk and ss_sold_date_sk < 2451728
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE 2451728 <= ss_sold_date_sk and ss_sold_date_sk < 2452184
-distribute by ss_sold_date_sk;
-
-insert overwrite table {table_name} partition(ss_sold_date_sk)
-select ss_sold_time_sk,
-  ss_item_sk,
-  ss_customer_sk,
-  ss_cdemo_sk,
-  ss_hdemo_sk,
-  ss_addr_sk,
-  ss_store_sk,
-  ss_promo_sk,
-  ss_ticket_number,
-  ss_quantity,
-  ss_wholesale_cost,
-  ss_list_price,
-  ss_sales_price,
-  ss_ext_discount_amt,
-  ss_ext_sales_price,
-  ss_ext_wholesale_cost,
-  ss_ext_list_price,
-  ss_ext_tax,
-  ss_coupon_amt,
-  ss_net_paid,
-  ss_net_paid_inc_tax,
-  ss_net_profit,
-  ss_sold_date_sk
-from store_sales_unpartitioned
-WHERE 2452184 <= ss_sold_date_sk
-distribute by ss_sold_date_sk;
+FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 store_returns
 ---- COLUMNS
-sr_returned_date_sk       int
 sr_return_time_sk         int
 sr_item_sk                bigint
 sr_customer_sk            int
@@ -1069,102 +778,38 @@ foreign key (sr_addr_sk) references {db_name}{db_suffix}.customer_address (ca_ad
 foreign key (sr_store_sk) references {db_name}{db_suffix}.store (s_store_sk) DISABLE NOVALIDATE RELY
 foreign key (sr_reason_sk) references {db_name}{db_suffix}.reason (r_reason_sk) DISABLE NOVALIDATE RELY
 foreign key (sr_item_sk, sr_ticket_number) references {db_name}{db_suffix}.store_sales (ss_item_sk, ss_ticket_number) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/store_returns/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
----- BASE_TABLE_NAME
-web_page
----- COLUMNS
-wp_web_page_sk            int
-wp_web_page_id            string
-wp_rec_start_date         string
-wp_rec_end_date           string
-wp_creation_date_sk       int
-wp_access_date_sk         int
-wp_autogen_flag           string
-wp_customer_sk            int
-wp_url                    string
-wp_type                   string
-wp_char_count             int
-wp_link_count             int
-wp_image_count            int
-wp_max_ad_count           int
-primary key (wp_web_page_sk) DISABLE NOVALIDATE RELY
-foreign key (wp_creation_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (wp_access_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (wp_customer_sk) references {db_name}{db_suffix}.customer (c_customer_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
----- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_page/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
-====
----- DATASET
-tpcds
----- BASE_TABLE_NAME
-web_site
----- COLUMNS
-web_site_sk           int
-web_site_id           string
-web_rec_start_date    string
-web_rec_end_date      string
-web_name              string
-web_open_date_sk      int
-web_close_date_sk     int
-web_class             string
-web_manager           string
-web_mkt_id            int
-web_mkt_class         string
-web_mkt_desc          string
-web_market_manager    string
-web_company_id        int
-web_company_name      string
-web_street_number     string
-web_street_name       string
-web_street_type       string
-web_suite_number      string
-web_city              string
-web_county            string
-web_state             string
-web_zip               string
-web_country           string
-web_gmt_offset        decimal(5,2)
-web_tax_percentage    decimal(5,2)
-primary key (web_site_sk) DISABLE NOVALIDATE RELY
-foreign key (web_open_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
-foreign key (web_close_date_sk) references {db_name}{db_suffix}.date_dim (d_date_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
+---- PARTITION_COLUMNS
+sr_returned_date_sk       int
 ---- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_site/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} partition(sr_returned_date_sk)
+SELECT
+  sr_return_time_sk,
+  sr_item_sk,
+  sr_customer_sk,
+  sr_cdemo_sk,
+  sr_hdemo_sk,
+  sr_addr_sk,
+  sr_store_sk,
+  sr_reason_sk,
+  sr_ticket_number,
+  sr_return_quantity,
+  sr_return_amt,
+  sr_return_tax,
+  sr_return_amt_inc_tax,
+  sr_fee,
+  sr_return_ship_cost,
+  sr_refunded_cash,
+  sr_reversed_charge,
+  sr_store_credit,
+  sr_net_loss,
+  sr_returned_date_sk
+FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 web_sales
 ---- COLUMNS
-ws_sold_date_sk           int
 ws_sold_time_sk           int
 ws_ship_date_sk           int
 ws_item_sk                bigint
@@ -1216,23 +861,52 @@ foreign key (ws_web_site_sk) references {db_name}{db_suffix}.web_site (web_site_
 foreign key (ws_ship_mode_sk) references {db_name}{db_suffix}.ship_mode (sm_ship_mode_sk) DISABLE NOVALIDATE RELY
 foreign key (ws_warehouse_sk) references {db_name}{db_suffix}.warehouse (w_warehouse_sk) DISABLE NOVALIDATE RELY
 foreign key (ws_promo_sk) references {db_name}{db_suffix}.promotion (p_promo_sk) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
+---- PARTITION_COLUMNS
+ws_sold_date_sk           int
 ---- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_sales/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} partition(ws_sold_date_sk)
+SELECT
+  ws_sold_time_sk,
+  ws_ship_date_sk,
+  ws_item_sk,
+  ws_bill_customer_sk,
+  ws_bill_cdemo_sk,
+  ws_bill_hdemo_sk,
+  ws_bill_addr_sk,
+  ws_ship_customer_sk,
+  ws_ship_cdemo_sk,
+  ws_ship_hdemo_sk,
+  ws_ship_addr_sk,
+  ws_web_page_sk,
+  ws_web_site_sk,
+  ws_ship_mode_sk,
+  ws_warehouse_sk,
+  ws_promo_sk,
+  ws_order_number,
+  ws_quantity,
+  ws_wholesale_cost,
+  ws_list_price,
+  ws_sales_price,
+  ws_ext_discount_amt,
+  ws_ext_sales_price,
+  ws_ext_wholesale_cost,
+  ws_ext_list_price,
+  ws_ext_tax,
+  ws_coupon_amt,
+  ws_ext_ship_cost,
+  ws_net_paid,
+  ws_net_paid_inc_tax,
+  ws_net_paid_inc_ship,
+  ws_net_paid_inc_ship_tax,
+  ws_net_profit,
+  ws_sold_date_sk
+FROM tpcds.{table_name};
 ====
 ---- DATASET
-tpcds
+tpcds_partitioned
 ---- BASE_TABLE_NAME
 web_returns
 ---- COLUMNS
-wr_returned_date_sk       int
 wr_returned_time_sk       int
 wr_item_sk                bigint
 wr_refunded_customer_sk   int
@@ -1271,14 +945,34 @@ foreign key (wr_returning_addr_sk) references {db_name}{db_suffix}.customer_addr
 foreign key (wr_web_page_sk) references {db_name}{db_suffix}.web_page (wp_web_page_sk) DISABLE NOVALIDATE RELY
 foreign key (wr_reason_sk) references {db_name}{db_suffix}.reason (r_reason_sk) DISABLE NOVALIDATE RELY
 foreign key (wr_item_sk, wr_order_number) references {db_name}{db_suffix}.web_sales (ws_item_sk, ws_order_number) DISABLE NOVALIDATE RELY
----- ROW_FORMAT
-delimited fields terminated by '|'
----- TABLE_PROPERTIES
-text:serialization.null.format=
+---- PARTITION_COLUMNS
+wr_returned_date_sk       int
 ---- DEPENDENT_LOAD
-INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name}
-SELECT * FROM {db_name}.{table_name};
----- LOAD
-LOAD DATA LOCAL INPATH '{impala_home}/testdata/impala-data/{db_name}/web_returns/'
-OVERWRITE INTO TABLE {db_name}{db_suffix}.{table_name};
+INSERT OVERWRITE TABLE {db_name}{db_suffix}.{table_name} partition(wr_returned_date_sk)
+SELECT
+  wr_returned_time_sk,
+  wr_item_sk,
+  wr_refunded_customer_sk,
+  wr_refunded_cdemo_sk,
+  wr_refunded_hdemo_sk,
+  wr_refunded_addr_sk,
+  wr_returning_customer_sk,
+  wr_returning_cdemo_sk,
+  wr_returning_hdemo_sk,
+  wr_returning_addr_sk,
+  wr_web_page_sk,
+  wr_reason_sk,
+  wr_order_number,
+  wr_return_quantity,
+  wr_return_amt,
+  wr_return_tax,
+  wr_return_amt_inc_tax,
+  wr_fee,
+  wr_return_ship_cost,
+  wr_refunded_cash,
+  wr_reversed_charge,
+  wr_account_credit,
+  wr_net_loss,
+  wr_returned_date_sk
+FROM tpcds.{table_name};
 ====
diff --git a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-processing-cost.test b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-processing-cost.test
index b31db836e..bd11760d4 100644
--- a/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-processing-cost.test
+++ b/testdata/workloads/functional-planner/queries/PlannerTest/tpcds-processing-cost.test
@@ -126,7 +126,7 @@ max-parallelism=6 segment-costs=[15408, 167] cpu-comparison-result=18 [max(18 (s
 |  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.38MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[124002]
-|  00:SCAN HDFS [tpcds_parquet.date_dim dt, RANDOM]
+|  00:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim dt, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     predicates: dt.d_moy = CAST(12 AS INT)
 |     stored statistics:
@@ -173,7 +173,7 @@ max-parallelism=12 segment-costs=[94125607]
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.19MB mem-reservation=256.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[68778]
-|  02:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  02:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |     HDFS partitions=1/1 files=1 size=1.73MB
 |     predicates: item.i_manufact_id = CAST(436 AS INT)
 |     stored statistics:
@@ -186,7 +186,7 @@ max-parallelism=12 segment-costs=[94125607]
 |     tuple-ids=2 row-size=44B cardinality=19 cost=68777
 |     in pipelines: 02(GETNEXT)
 |
-01:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+01:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
    HDFS partitions=1824/1824 files=1824 size=200.96MB
    runtime filters: RF003[min_max] -> store_sales.ss_item_sk, RF000[bloom] -> store_sales.ss_sold_date_sk, RF002[bloom] -> store_sales.ss_item_sk
    stored statistics:
@@ -301,11 +301,11 @@ with  cross_items as
  order by channel,i_brand_id,i_class_id,i_category_id
 LIMIT 100
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=698.06MB Threads=166
-Per-Host Resource Estimates: Memory=2.41GB
-F80:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+Max Per-Host Resource Reservation: Memory=890.31MB Threads=212
+Per-Host Resource Estimates: Memory=3.47GB
+F82: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=[606] cpu-comparison-result=166 [max(1 (self) vs 166 (sum children))]
+|  max-parallelism=1 segment-costs=[606] cpu-comparison-result=258 [max(1 (self) vs 258 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: CASE valid_tid(104,105,106,107,108) WHEN 104 THEN channel WHEN 105 THEN channel WHEN 106 THEN channel WHEN 107 THEN channel WHEN 108 THEN NULL END, CASE valid_tid(104,105,106,107,108) WHEN 104 THEN i_brand_id WHEN 105 THEN i_brand_id WHEN 106 THEN i_brand_id WHEN 107 THEN NULL WHEN 108 THEN NULL END, CASE valid_tid(104,105,106,107,108) WHEN 104 THEN i_class_id WHEN 105 THEN i_class_id WHEN 106 THEN NULL WHEN 107 THEN NULL WHEN 108 THEN NULL END, CASE valid_tid(104,105,10 [...]
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=600
@@ -317,9 +317,9 @@ PLAN-ROOT SINK
 |  tuple-ids=110 row-size=48B cardinality=100 cost=6
 |  in pipelines: 129(GETNEXT)
 |
-F79:PLAN FRAGMENT [HASH(CASE valid_tid(104,105,106,107,108) WHEN 104 THEN murmur_hash(channel) WHEN 105 THEN murmur_hash(channel) WHEN 106 THEN murmur_hash(channel) WHEN 107 THEN murmur_hash(channel) WHEN 108 THEN murmur_hash(NULL) END,CASE valid_tid(104,105,106,107,108) WHEN 104 THEN murmur_hash(i_brand_id) WHEN 105 THEN murmur_hash(i_brand_id) WHEN 106 THEN murmur_hash(i_brand_id) WHEN 107 THEN murmur_hash(NULL) WHEN 108 THEN murmur_hash(NULL) END,CASE valid_tid(104,105,106,107,108) WH [...]
+F81:PLAN FRAGMENT [HASH(CASE valid_tid(104,105,106,107,108) WHEN 104 THEN murmur_hash(channel) WHEN 105 THEN murmur_hash(channel) WHEN 106 THEN murmur_hash(channel) WHEN 107 THEN murmur_hash(channel) WHEN 108 THEN murmur_hash(NULL) END,CASE valid_tid(104,105,106,107,108) WHEN 104 THEN murmur_hash(i_brand_id) WHEN 105 THEN murmur_hash(i_brand_id) WHEN 106 THEN murmur_hash(i_brand_id) WHEN 107 THEN murmur_hash(NULL) WHEN 108 THEN murmur_hash(NULL) END,CASE valid_tid(104,105,106,107,108) WH [...]
 Per-Instance Resources: mem-estimate=70.05MB mem-reservation=30.44MB thread-reservation=1
-max-parallelism=6 segment-costs=[2028749, 2270779, 400, 6] cpu-comparison-result=166 [max(6 (self) vs 166 (sum children))]
+max-parallelism=6 segment-costs=[2025384, 2267013, 400, 6] cpu-comparison-result=258 [max(6 (self) vs 258 (sum children))]
 129:TOP-N [LIMIT=100]
 |  order by: CASE valid_tid(104,105,106,107,108) WHEN 104 THEN channel WHEN 105 THEN channel WHEN 106 THEN channel WHEN 107 THEN channel WHEN 108 THEN NULL END ASC, CASE valid_tid(104,105,106,107,108) WHEN 104 THEN i_brand_id WHEN 105 THEN i_brand_id WHEN 106 THEN i_brand_id WHEN 107 THEN NULL WHEN 108 THEN NULL END ASC, CASE valid_tid(104,105,106,107,108) WHEN 104 THEN i_class_id WHEN 105 THEN i_class_id WHEN 106 THEN NULL WHEN 107 THEN NULL WHEN 108 THEN NULL END ASC, CASE valid_tid(10 [...]
 |  mem-estimate=4.69KB mem-reservation=0B thread-reservation=0
@@ -330,7 +330,7 @@ max-parallelism=6 segment-costs=[2028749, 2270779, 400, 6] cpu-comparison-result
 |  output: aggif(valid_tid(104,105,106,107,108) IN (CAST(104 AS INT), CAST(105 AS INT), CAST(106 AS INT), CAST(107 AS INT), CAST(108 AS INT)), CASE valid_tid(104,105,106,107,108) WHEN CAST(104 AS INT) THEN sum(sales) WHEN CAST(105 AS INT) THEN sum(sales) WHEN CAST(106 AS INT) THEN sum(sales) WHEN CAST(107 AS INT) THEN sum(sales) WHEN CAST(108 AS INT) THEN sum(sales) END), aggif(valid_tid(104,105,106,107,108) IN (CAST(104 AS INT), CAST(105 AS INT), CAST(106 AS INT), CAST(107 AS INT), CAST [...]
 |  group by: CASE valid_tid(104,105,106,107,108) WHEN CAST(104 AS INT) THEN channel WHEN CAST(105 AS INT) THEN channel WHEN CAST(106 AS INT) THEN channel WHEN CAST(107 AS INT) THEN channel WHEN CAST(108 AS INT) THEN NULL END, CASE valid_tid(104,105,106,107,108) WHEN CAST(104 AS INT) THEN i_brand_id WHEN CAST(105 AS INT) THEN i_brand_id WHEN CAST(106 AS INT) THEN i_brand_id WHEN CAST(107 AS INT) THEN NULL WHEN CAST(108 AS INT) THEN NULL END, CASE valid_tid(104,105,106,107,108) WHEN CAST(1 [...]
 |  mem-estimate=10.00MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
-|  tuple-ids=109 row-size=52B cardinality=324.40K cost=2270779
+|  tuple-ids=109 row-size=52B cardinality=323.86K cost=2267013
 |  in pipelines: 128(GETNEXT), 215(OPEN)
 |
 215:AGGREGATE [FINALIZE]
@@ -350,17 +350,17 @@ max-parallelism=6 segment-costs=[2028749, 2270779, 400, 6] cpu-comparison-result
 |    output: sum:merge(sales), sum:merge(number_sales)
 |    group by: NULL, NULL, NULL, NULL
 |  mem-estimate=57.00MB mem-reservation=25.69MB thread-reservation=0
-|  tuple-ids=104N,105N,106N,107N,108N row-size=240B cardinality=324.40K cost=1946382
+|  tuple-ids=104N,105N,106N,107N,108N row-size=240B cardinality=323.86K cost=1943154
 |  in pipelines: 215(GETNEXT), 151(OPEN), 179(OPEN), 207(OPEN)
 |
 214:EXCHANGE [HASH(CASE valid_tid(104,105,106,107,108) WHEN 104 THEN murmur_hash(channel) WHEN 105 THEN murmur_hash(channel) WHEN 106 THEN murmur_hash(channel) WHEN 107 THEN murmur_hash(channel) WHEN 108 THEN murmur_hash(NULL) END,CASE valid_tid(104,105,106,107,108) WHEN 104 THEN murmur_hash(i_brand_id) WHEN 105 THEN murmur_hash(i_brand_id) WHEN 106 THEN murmur_hash(i_brand_id) WHEN 107 THEN murmur_hash(NULL) WHEN 108 THEN murmur_hash(NULL) END,CASE valid_tid(104,105,106,107,108) WHEN 10 [...]
 |  mem-estimate=13.05MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=104N,105N,106N,107N,108N row-size=240B cardinality=324.40K cost=82367
+|  tuple-ids=104N,105N,106N,107N,108N row-size=240B cardinality=323.86K cost=82230
 |  in pipelines: 151(GETNEXT), 179(GETNEXT), 207(GETNEXT)
 |
-F78:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+F80:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Instance Resources: mem-estimate=68.27MB mem-reservation=25.94MB thread-reservation=1
-max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-comparison-result=166 [max(12 (self) vs 166 (sum children))]
+max-parallelism=12 segment-costs=[749813, 428467, 214644, 13268400, 82230] cpu-comparison-result=258 [max(12 (self) vs 258 (sum children))]
 127:AGGREGATE [STREAMING]
 |  Class 0
 |    output: sum(sales), sum(number_sales)
@@ -378,24 +378,24 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |    output: sum(sales), sum(number_sales)
 |    group by: NULL, NULL, NULL, NULL
 |  mem-estimate=50.00MB mem-reservation=24.00MB thread-reservation=0
-|  tuple-ids=104N,105N,106N,107N,108N row-size=240B cardinality=324.40K cost=8308890
+|  tuple-ids=104N,105N,106N,107N,108N row-size=240B cardinality=323.86K cost=8292750
 |  in pipelines: 151(GETNEXT), 179(GETNEXT), 207(GETNEXT)
 |
 00:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=102 row-size=48B cardinality=276.96K cost=4985334
+|  tuple-ids=102 row-size=48B cardinality=276.43K cost=4975650
 |  in pipelines: 151(GETNEXT), 179(GETNEXT), 207(GETNEXT)
 |
 |--126:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
 |  |  join table id: 08
 |  |  predicates: sum(ws_quantity * ws_list_price) > avg(quantity * list_price)
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=88,99 row-size=52B cardinality=42.85K cost=0
+|  |  tuple-ids=88,99 row-size=52B cardinality=42.60K cost=0
 |  |  in pipelines: 207(GETNEXT), 212(OPEN)
 |  |
-|  |--F89:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F91:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=15 [max(3 (self) vs 15 (sum children))]
+|  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=08 plan-id=09 cohort-id=01
 |  |  |  mem-estimate=16B mem-reservation=0B thread-reservation=0 cost=0
@@ -405,9 +405,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=99 row-size=16B cardinality=1 cost=3
 |  |  |  in pipelines: 212(GETNEXT)
 |  |  |
-|  |  F77:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+|  |  F79:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=96.00KB mem-reservation=0B thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=15 [max(2 (self) vs 15 (sum children))]
+|  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=33 [max(2 (self) vs 33 (sum children))]
 |  |  212:AGGREGATE [FINALIZE]
 |  |  |  output: avg:merge(quantity * list_price)
 |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -419,9 +419,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=98 row-size=16B cardinality=1 cost=1
 |  |  |  in pipelines: 125(GETNEXT)
 |  |  |
-|  |  F76:PLAN FRAGMENT [RANDOM] hosts=3 instances=15 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=4.00MB thread-reservation=1
-|  |  max-parallelism=15 segment-costs=[131839765, 1] cpu-comparison-result=15 [max(15 (self) vs 12 (sum children))]
+|  |  F78:PLAN FRAGMENT [RANDOM] hosts=3 instances=33 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=512.00KB thread-reservation=1
+|  |  max-parallelism=33 segment-costs=[314339768, 1] cpu-comparison-result=33 [max(33 (self) vs 12 (sum children))]
 |  |  125:AGGREGATE
 |  |  |  output: avg(CAST(quantity AS DECIMAL(10,0)) * list_price)
 |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -441,24 +441,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=94,95 row-size=20B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 122(GETNEXT), 123(OPEN)
 |  |  |  |
-|  |  |  |--F92:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |--F94:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=11 plan-id=12 cohort-id=04
 |  |  |  |  |  build expressions: d_date_sk
-|  |  |  |  |  runtime filters: RF107[min_max] <- d_date_sk
-|  |  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  210:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=95 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 123(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F75:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F77:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  123:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  123:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -471,15 +470,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=95 row-size=8B cardinality=7.30K cost=196669
 |  |  |  |     in pipelines: 123(GETNEXT)
 |  |  |  |
-|  |  |  122:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     runtime filters: RF107[min_max] -> ws_sold_date_sk
+|  |  |  122:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
 |  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
+|  |  |       table: rows=719.38K size=84.20MB
+|  |  |       partitions: 1824/1824 rows=719.38K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=94 row-size=12B cardinality=719.38K cost=108431
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=94 row-size=12B cardinality=719.38K cost=91208432
 |  |  |     in pipelines: 122(GETNEXT)
 |  |  |
 |  |  |--121:HASH JOIN [INNER JOIN, BROADCAST]
@@ -490,24 +489,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=92,93 row-size=20B cardinality=1.44M cost=1441548
 |  |  |  |  in pipelines: 119(GETNEXT), 120(OPEN)
 |  |  |  |
-|  |  |  |--F91:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |--F93:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=10 plan-id=11 cohort-id=04
 |  |  |  |  |  build expressions: d_date_sk
-|  |  |  |  |  runtime filters: RF105[min_max] <- d_date_sk
-|  |  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  209:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=93 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 120(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F73:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F75:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  120:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  120:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -520,15 +518,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=93 row-size=8B cardinality=7.30K cost=196669
 |  |  |  |     in pipelines: 120(GETNEXT)
 |  |  |  |
-|  |  |  119:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |  |     runtime filters: RF105[min_max] -> cs_sold_date_sk
+|  |  |  119:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |  |  |     stored statistics:
-|  |  |       table: rows=1.44M size=96.62MB
+|  |  |       table: rows=1.44M size=151.13MB
+|  |  |       partitions: 1831/1831 rows=1.44M
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=92 row-size=12B cardinality=1.44M cost=166894
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=92 row-size=12B cardinality=1.44M cost=91566896
 |  |  |     in pipelines: 119(GETNEXT)
 |  |  |
 |  |  118:HASH JOIN [INNER JOIN, BROADCAST]
@@ -539,23 +537,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=90,91 row-size=20B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 116(GETNEXT), 117(OPEN)
 |  |  |
-|  |  |--F90:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |--F92:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=09 plan-id=10 cohort-id=04
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  208:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=91 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  in pipelines: 117(GETNEXT)
 |  |  |  |
-|  |  |  F71:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F73:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  117:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  117:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -568,10 +566,10 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |     tuple-ids=91 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 117(GETNEXT)
 |  |  |
-|  |  116:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  116:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -583,68 +581,59 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  output: sum:merge(ws_quantity * ws_list_price), count:merge(*)
 |  |  group by: i_brand_id, i_class_id, i_category_id
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=88 row-size=36B cardinality=42.85K cost=214270
+|  |  tuple-ids=88 row-size=36B cardinality=42.60K cost=212980
 |  |  in pipelines: 207(GETNEXT), 85(OPEN)
 |  |
 |  206:EXCHANGE [HASH(i_brand_id,i_class_id,i_category_id)]
-|  |  mem-estimate=833.29KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=88 row-size=36B cardinality=42.85K cost=1674
+|  |  mem-estimate=739.17KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=88 row-size=36B cardinality=42.60K cost=1664
 |  |  in pipelines: 85(GETNEXT)
 |  |
-|  F52:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  Per-Instance Resources: mem-estimate=27.88MB mem-reservation=6.00MB thread-reservation=1
-|  max-parallelism=2 segment-costs=[1133413, 1674] cpu-comparison-result=39 [max(2 (self) vs 39 (sum children))]
+|  F56:PLAN FRAGMENT [HASH(ws_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=12.78MB mem-reservation=2.00MB thread-reservation=1
+|  max-parallelism=6 segment-costs=[299836, 1664] cpu-comparison-result=54 [max(18 (self) vs 54 (sum children))]
 |  114:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(ws_quantity AS DECIMAL(10,0)) * ws_list_price), count(*)
 |  |  group by: i_brand_id, i_class_id, i_category_id
 |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=88 row-size=36B cardinality=42.85K cost=214270
+|  |  tuple-ids=88 row-size=36B cardinality=42.60K cost=212980
 |  |  in pipelines: 85(GETNEXT)
 |  |
-|  113:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
+|  113:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
 |  |  hash-table-id=36
-|  |  hash predicates: ws_item_sk = tpcds_parquet.item.i_item_sk
+|  |  hash predicates: ws_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=68,70,69 row-size=52B cardinality=42.85K cost=42854
-|  |  in pipelines: 85(GETNEXT), 204(OPEN)
+|  |  tuple-ids=68,70,69 row-size=52B cardinality=42.60K cost=42596
+|  |  in pipelines: 85(GETNEXT), 205(OPEN)
 |  |
-|  |--F117:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=2.14MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[18397] cpu-comparison-result=33 [max(2 (self) vs 33 (sum children))]
+|  |--F119:PLAN FRAGMENT [HASH(ws_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=11.94MB mem-reservation=3.88MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[18186, 17975] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=36 plan-id=37 cohort-id=01
-|  |  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  |  runtime filters: RF073[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  |  runtime filters: RF073[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |  |
-|  |  205:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=212.43KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=170 row-size=8B cardinality=17.98K cost=422
-|  |  |  in pipelines: 204(GETNEXT)
-|  |  |
-|  |  F68:PLAN FRAGMENT [HASH(tpcds_parquet.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=10.12MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
-|  |  204:AGGREGATE [FINALIZE]
-|  |  |  group by: tpcds_parquet.item.i_item_sk
+|  |  205:AGGREGATE [FINALIZE]
+|  |  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=170 row-size=8B cardinality=17.98K cost=17975
-|  |  |  in pipelines: 204(GETNEXT), 191(OPEN)
+|  |  |  in pipelines: 205(GETNEXT), 192(OPEN)
 |  |  |
-|  |  203:EXCHANGE [HASH(tpcds_parquet.item.i_item_sk)]
+|  |  204:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)]
 |  |  |  mem-estimate=118.81KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=170 row-size=8B cardinality=17.98K cost=211
-|  |  |  in pipelines: 191(GETNEXT)
+|  |  |  in pipelines: 192(GETNEXT)
 |  |  |
-|  |  F58:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  F60:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=20.76MB mem-reservation=3.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  |  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  |  112:AGGREGATE [STREAMING]
-|  |  |  group by: tpcds_parquet.item.i_item_sk
+|  |  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=170 row-size=8B cardinality=17.98K cost=148800
-|  |  |  in pipelines: 191(GETNEXT)
+|  |  |  in pipelines: 192(GETNEXT)
 |  |  |
 |  |  109:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  |  hash-table-id=37
@@ -652,9 +641,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  fk/pk conjuncts: iss.i_brand_id = i_brand_id, iss.i_category_id = i_category_id, iss.i_class_id = i_class_id
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=75,71 row-size=32B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 191(GETNEXT), 88(OPEN)
+|  |  |  in pipelines: 192(GETNEXT), 88(OPEN)
 |  |  |
-|  |  |--F118:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |--F120:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
 |  |  |  |  max-parallelism=6 segment-costs=[54422]
 |  |  |  JOIN BUILD
@@ -663,15 +652,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  runtime filters: RF081[min_max] <- i_brand_id, RF082[min_max] <- i_category_id, RF083[min_max] <- i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=54000
 |  |  |  |
-|  |  |  202:EXCHANGE [HASH(i_brand_id,i_class_id,i_category_id)]
+|  |  |  203:EXCHANGE [HASH(i_brand_id,i_class_id,i_category_id)]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=71 row-size=20B cardinality=18.00K cost=422
 |  |  |  |  in pipelines: 88(GETNEXT)
 |  |  |  |
-|  |  |  F67:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F69:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  88:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  |  88:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -686,41 +675,41 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  hash predicates: iss.i_brand_id IS NOT DISTINCT FROM iws.i_brand_id, iss.i_category_id IS NOT DISTINCT FROM iws.i_category_id, iss.i_class_id IS NOT DISTINCT FROM iws.i_class_id
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=75 row-size=12B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 191(GETNEXT), 200(OPEN)
+|  |  |  in pipelines: 192(GETNEXT), 201(OPEN)
 |  |  |
-|  |  |--F119:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  |  Per-Instance Resources: mem-estimate=2.85MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=6 [max(6 (self) vs 6 (sum children))]
+|  |  |--F121:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=38 plan-id=39 cohort-id=11
 |  |  |  |  build expressions: iws.i_brand_id, iws.i_category_id, iws.i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |  |
-|  |  |  201:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  |  mem-estimate=935.88KB mem-reservation=0B thread-reservation=0
+|  |  |  202:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
+|  |  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=169 row-size=12B cardinality=148.80K cost=2325
-|  |  |  |  in pipelines: 200(GETNEXT)
+|  |  |  |  in pipelines: 201(GETNEXT)
 |  |  |  |
-|  |  |  F66:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=2 instances=4 (adjusted from 2)
-|  |  |  Per-Instance Resources: mem-estimate=10.88MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=4 segment-costs=[448725, 2325] cpu-comparison-result=6 [max(4 (self) vs 6 (sum children))]
-|  |  |  200:AGGREGATE [FINALIZE]
+|  |  |  F68:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
+|  |  |  201:AGGREGATE [FINALIZE]
 |  |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  |  tuple-ids=169 row-size=12B cardinality=148.80K cost=446400
-|  |  |  |  in pipelines: 200(GETNEXT), 100(OPEN)
+|  |  |  |  in pipelines: 201(GETNEXT), 100(OPEN)
 |  |  |  |
-|  |  |  199:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  |  mem-estimate=903.88KB mem-reservation=0B thread-reservation=0
+|  |  |  200:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
+|  |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=169 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 100(GETNEXT)
 |  |  |  |
-|  |  |  F63:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=26.25MB mem-reservation=9.00MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[3705351, 2325] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+|  |  |  F65:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=3.12MB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[94805352, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  |  107:AGGREGATE [STREAMING]
 |  |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
-|  |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
+|  |  |  |  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
 |  |  |  |  tuple-ids=169 row-size=12B cardinality=148.80K cost=2158152
 |  |  |  |  in pipelines: 100(GETNEXT)
 |  |  |  |
@@ -732,24 +721,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=81,82,83 row-size=40B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 100(GETNEXT), 102(OPEN)
 |  |  |  |
-|  |  |  |--F120:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  |  max-parallelism=2 segment-costs=[7477]
+|  |  |  |--F122:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=39 plan-id=40 cohort-id=12
 |  |  |  |  |  build expressions: d3.d_date_sk
-|  |  |  |  |  runtime filters: RF099[min_max] <- d3.d_date_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
-|  |  |  |  198:EXCHANGE [BROADCAST]
+|  |  |  |  199:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
-|  |  |  |  |  tuple-ids=83 row-size=8B cardinality=7.30K cost=172
+|  |  |  |  |  tuple-ids=83 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 102(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F65:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F67:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  102:SCAN HDFS [tpcds_parquet.date_dim d3, RANDOM]
+|  |  |  |  102:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d3, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d3.d_year <= CAST(2001 AS INT), d3.d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -770,24 +758,24 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=81,82 row-size=32B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 100(GETNEXT), 101(OPEN)
 |  |  |  |
-|  |  |  |--F121:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  |  max-parallelism=2 segment-costs=[18844]
+|  |  |  |--F123:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=40 plan-id=41 cohort-id=12
 |  |  |  |  |  build expressions: iws.i_item_sk
 |  |  |  |  |  runtime filters: RF101[min_max] <- iws.i_item_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |  |
-|  |  |  |  197:EXCHANGE [BROADCAST]
+|  |  |  |  198:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  |  |  tuple-ids=82 row-size=20B cardinality=18.00K cost=844
+|  |  |  |  |  tuple-ids=82 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  |  in pipelines: 101(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F64:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F66:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  |  101:SCAN HDFS [tpcds_parquet.item iws, RANDOM]
+|  |  |  |  101:SCAN HDFS [tpcds_partitioned_parquet_snap.item iws, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -797,15 +785,16 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=82 row-size=20B cardinality=18.00K cost=50352
 |  |  |  |     in pipelines: 101(GETNEXT)
 |  |  |  |
-|  |  |  100:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     runtime filters: RF099[min_max] -> ws_sold_date_sk, RF101[min_max] -> ws_item_sk
+|  |  |  100:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |  |     runtime filters: RF101[min_max] -> ws_item_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
+|  |  |       table: rows=719.38K size=84.20MB
+|  |  |       partitions: 1824/1824 rows=719.38K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=81 row-size=12B cardinality=719.38K cost=108431
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=81 row-size=12B cardinality=719.38K cost=91208432
 |  |  |     in pipelines: 100(GETNEXT)
 |  |  |
 |  |  106:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
@@ -813,38 +802,38 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  hash predicates: iss.i_brand_id IS NOT DISTINCT FROM ics.i_brand_id, iss.i_category_id IS NOT DISTINCT FROM ics.i_category_id, iss.i_class_id IS NOT DISTINCT FROM ics.i_class_id
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=75 row-size=12B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 191(GETNEXT), 195(OPEN)
+|  |  |  in pipelines: 192(GETNEXT), 196(OPEN)
 |  |  |
-|  |  |--F122:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |--F124:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=41 plan-id=42 cohort-id=11
 |  |  |  |  build expressions: ics.i_brand_id, ics.i_category_id, ics.i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |  |
-|  |  |  196:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
+|  |  |  197:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
 |  |  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=168 row-size=12B cardinality=148.80K cost=2325
-|  |  |  |  in pipelines: 195(GETNEXT)
+|  |  |  |  in pipelines: 196(GETNEXT)
 |  |  |  |
-|  |  |  F62:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 3)
-|  |  |  Per-Instance Resources: mem-estimate=10.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
-|  |  |  195:AGGREGATE [FINALIZE]
+|  |  |  F64:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
+|  |  |  196:AGGREGATE [FINALIZE]
 |  |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  |  tuple-ids=168 row-size=12B cardinality=148.80K cost=446400
-|  |  |  |  in pipelines: 195(GETNEXT), 95(OPEN)
+|  |  |  |  in pipelines: 196(GETNEXT), 95(OPEN)
 |  |  |  |
-|  |  |  194:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
-|  |  |  |  mem-estimate=629.25KB mem-reservation=0B thread-reservation=0
+|  |  |  195:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
+|  |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=168 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 95(GETNEXT)
 |  |  |  |
-|  |  |  F59:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=9.00MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[7374634, 2325] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+|  |  |  F61:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.12MB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[98774636, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  |  105:AGGREGATE [STREAMING]
 |  |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
@@ -859,24 +848,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=77,78,79 row-size=40B cardinality=1.44M cost=1441548
 |  |  |  |  in pipelines: 95(GETNEXT), 97(OPEN)
 |  |  |  |
-|  |  |  |--F123:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |--F125:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=42 plan-id=43 cohort-id=13
 |  |  |  |  |  build expressions: d2.d_date_sk
-|  |  |  |  |  runtime filters: RF095[min_max] <- d2.d_date_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
-|  |  |  |  193:EXCHANGE [BROADCAST]
+|  |  |  |  194:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=79 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 97(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F61:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F63:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  97:SCAN HDFS [tpcds_parquet.date_dim d2, RANDOM]
+|  |  |  |  97:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d2, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d2.d_year <= CAST(2001 AS INT), d2.d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -897,24 +885,24 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=77,78 row-size=32B cardinality=1.44M cost=1441548
 |  |  |  |  in pipelines: 95(GETNEXT), 96(OPEN)
 |  |  |  |
-|  |  |  |--F124:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |--F126:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=43 plan-id=44 cohort-id=13
 |  |  |  |  |  build expressions: ics.i_item_sk
 |  |  |  |  |  runtime filters: RF097[min_max] <- ics.i_item_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |  |
-|  |  |  |  192:EXCHANGE [BROADCAST]
+|  |  |  |  193:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=78 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  |  in pipelines: 96(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F60:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F62:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  |  96:SCAN HDFS [tpcds_parquet.item ics, RANDOM]
+|  |  |  |  96:SCAN HDFS [tpcds_partitioned_parquet_snap.item ics, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -924,29 +912,30 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=78 row-size=20B cardinality=18.00K cost=50352
 |  |  |  |     in pipelines: 96(GETNEXT)
 |  |  |  |
-|  |  |  95:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |  |     runtime filters: RF095[min_max] -> cs_sold_date_sk, RF097[min_max] -> cs_item_sk
+|  |  |  95:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|  |  |     runtime filters: RF097[min_max] -> cs_item_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=1.44M size=96.62MB
+|  |  |       table: rows=1.44M size=151.13MB
+|  |  |       partitions: 1831/1831 rows=1.44M
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=77 row-size=12B cardinality=1.44M cost=166894
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=77 row-size=12B cardinality=1.44M cost=91566896
 |  |  |     in pipelines: 95(GETNEXT)
 |  |  |
-|  |  191:AGGREGATE [FINALIZE]
+|  |  192:AGGREGATE [FINALIZE]
 |  |  |  group by: iss.i_brand_id, iss.i_class_id, iss.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=75 row-size=12B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 191(GETNEXT), 89(OPEN)
+|  |  |  in pipelines: 192(GETNEXT), 89(OPEN)
 |  |  |
-|  |  190:EXCHANGE [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)]
+|  |  191:EXCHANGE [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)]
 |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=75 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 89(GETNEXT)
 |  |  |
-|  |  F55:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  F57:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.50MB thread-reservation=1
 |  |  max-parallelism=12 segment-costs=[105635772, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  94:AGGREGATE [STREAMING]
@@ -963,7 +952,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=72,73,74 row-size=40B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 89(GETNEXT), 91(OPEN)
 |  |  |
-|  |  |--F125:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |--F127:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
@@ -971,15 +960,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  build expressions: d1.d_date_sk
 |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
-|  |  |  189:EXCHANGE [BROADCAST]
+|  |  |  190:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=74 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  in pipelines: 91(GETNEXT)
 |  |  |  |
-|  |  |  F57:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F59:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  91:SCAN HDFS [tpcds_parquet.date_dim d1, RANDOM]
+|  |  |  91:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d1, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d1.d_year <= CAST(2001 AS INT), d1.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -1000,7 +989,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=72,73 row-size=32B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 89(GETNEXT), 90(OPEN)
 |  |  |
-|  |  |--F126:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |--F128:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  JOIN BUILD
@@ -1009,15 +998,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  runtime filters: RF093[min_max] <- iss.i_item_sk
 |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |
-|  |  |  188:EXCHANGE [BROADCAST]
+|  |  |  189:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=73 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  in pipelines: 90(GETNEXT)
 |  |  |  |
-|  |  |  F56:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F58:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  90:SCAN HDFS [tpcds_parquet.item iss, RANDOM]
+|  |  |  90:SCAN HDFS [tpcds_partitioned_parquet_snap.item iss, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     runtime filters: RF081[min_max] -> iss.i_brand_id, RF082[min_max] -> iss.i_category_id, RF083[min_max] -> iss.i_class_id
 |  |  |     stored statistics:
@@ -1028,11 +1017,11 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |     tuple-ids=73 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 90(GETNEXT)
 |  |  |
-|  |  89:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  89:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     runtime filters: RF093[min_max] -> ss_item_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -1040,34 +1029,34 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=72 row-size=12B cardinality=2.88M cost=91233752
 |  |     in pipelines: 89(GETNEXT)
 |  |
-|  111:HASH JOIN [INNER JOIN, BROADCAST]
+|  111:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=46
 |  |  hash predicates: ws_item_sk = i_item_sk
 |  |  fk/pk conjuncts: ws_item_sk = i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=68,70,69 row-size=52B cardinality=42.85K cost=42854
+|  |  tuple-ids=68,70,69 row-size=52B cardinality=42.60K cost=42596
 |  |  in pipelines: 85(GETNEXT), 86(OPEN)
 |  |
-|  |--F127:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
+|  |--F129:PLAN FRAGMENT [HASH(ws_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[18844]
+|  |  |  max-parallelism=6 segment-costs=[18422]
 |  |  JOIN BUILD
 |  |  |  join-table-id=46 plan-id=47 cohort-id=01
 |  |  |  build expressions: i_item_sk
 |  |  |  runtime filters: RF075[min_max] <- i_item_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |
-|  |  187:EXCHANGE [BROADCAST]
+|  |  188:EXCHANGE [HASH(i_item_sk)]
 |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=69 row-size=20B cardinality=18.00K cost=844
+|  |  |  tuple-ids=69 row-size=20B cardinality=18.00K cost=422
 |  |  |  in pipelines: 86(GETNEXT)
 |  |  |
-|  |  F54:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
+|  |  F55:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  86:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  86:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
-|  |     runtime filters: RF073[min_max] -> tpcds_parquet.item.i_item_sk
+|  |     runtime filters: RF073[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
 |  |       columns: all
@@ -1076,32 +1065,41 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=69 row-size=20B cardinality=18.00K cost=50352
 |  |     in pipelines: 86(GETNEXT)
 |  |
+|  187:EXCHANGE [HASH(ws_item_sk)]
+|  |  mem-estimate=923.71KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=68,70 row-size=32B cardinality=42.60K cost=1664
+|  |  in pipelines: 85(GETNEXT)
+|  |
+|  F53:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
+|  Per-Instance Resources: mem-estimate=16.94MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[91935096]
 |  110:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=47
 |  |  hash predicates: ws_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ws_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=68,70 row-size=32B cardinality=42.85K cost=719384
+|  |  tuple-ids=68,70 row-size=32B cardinality=42.60K cost=719384
 |  |  in pipelines: 85(GETNEXT), 87(OPEN)
 |  |
-|  |--F128:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=2 segment-costs=[112]
+|  |--F130:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=3 segment-costs=[114]
 |  |  JOIN BUILD
 |  |  |  join-table-id=47 plan-id=48 cohort-id=01
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF076[bloom] <- d_date_sk, RF077[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  runtime filters: RF076[bloom] <- d_date_sk
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |
 |  |  186:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=70 row-size=12B cardinality=108 cost=4
+|  |  |  tuple-ids=70 row-size=12B cardinality=108 cost=6
 |  |  |  in pipelines: 87(GETNEXT)
 |  |  |
-|  |  F53:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F54:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196957]
-|  |  87:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  87:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(2001 AS INT), d_moy = CAST(11 AS INT)
 |  |     stored statistics:
@@ -1114,27 +1112,28 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=70 row-size=12B cardinality=108 cost=196955
 |  |     in pipelines: 87(GETNEXT)
 |  |
-|  85:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|     HDFS partitions=1/1 files=2 size=45.09MB
-|     runtime filters: RF077[min_max] -> ws_sold_date_sk, RF073[min_max] -> ws_item_sk, RF075[min_max] -> ws_item_sk, RF076[bloom] -> ws_sold_date_sk
+|  85:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|     runtime filters: RF073[min_max] -> ws_item_sk, RF075[min_max] -> ws_item_sk, RF076[bloom] -> ws_sold_date_sk
 |     stored statistics:
-|       table: rows=719.38K size=45.09MB
+|       table: rows=719.38K size=84.20MB
+|       partitions: 1824/1824 rows=719.38K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|     tuple-ids=68 row-size=20B cardinality=719.38K cost=114051
+|     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=68 row-size=20B cardinality=719.38K cost=91214048
 |     in pipelines: 85(GETNEXT)
 |
 |--84:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
 |  |  join table id: 04
 |  |  predicates: sum(cs_quantity * cs_list_price) > avg(quantity * list_price)
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54,65 row-size=52B cardinality=85.31K cost=0
+|  |  tuple-ids=54,65 row-size=52B cardinality=85.03K cost=0
 |  |  in pipelines: 179(GETNEXT), 184(OPEN)
 |  |
-|  |--F85:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F87:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=15 [max(3 (self) vs 15 (sum children))]
+|  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=04 plan-id=05 cohort-id=01
 |  |  |  mem-estimate=16B mem-reservation=0B thread-reservation=0 cost=0
@@ -1144,9 +1143,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=65 row-size=16B cardinality=1 cost=3
 |  |  |  in pipelines: 184(GETNEXT)
 |  |  |
-|  |  F51:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+|  |  F52:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=96.00KB mem-reservation=0B thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=15 [max(2 (self) vs 15 (sum children))]
+|  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=33 [max(2 (self) vs 33 (sum children))]
 |  |  184:AGGREGATE [FINALIZE]
 |  |  |  output: avg:merge(quantity * list_price)
 |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -1158,9 +1157,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=64 row-size=16B cardinality=1 cost=1
 |  |  |  in pipelines: 83(GETNEXT)
 |  |  |
-|  |  F50:PLAN FRAGMENT [RANDOM] hosts=3 instances=15 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=4.00MB thread-reservation=1
-|  |  max-parallelism=15 segment-costs=[131839765, 1] cpu-comparison-result=15 [max(15 (self) vs 12 (sum children))]
+|  |  F51:PLAN FRAGMENT [RANDOM] hosts=3 instances=33 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=512.00KB thread-reservation=1
+|  |  max-parallelism=33 segment-costs=[314339768, 1] cpu-comparison-result=33 [max(33 (self) vs 12 (sum children))]
 |  |  83:AGGREGATE
 |  |  |  output: avg(CAST(quantity AS DECIMAL(10,0)) * list_price)
 |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -1180,24 +1179,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=60,61 row-size=20B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 80(GETNEXT), 81(OPEN)
 |  |  |  |
-|  |  |  |--F88:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |--F90:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=07 plan-id=08 cohort-id=03
 |  |  |  |  |  build expressions: d_date_sk
-|  |  |  |  |  runtime filters: RF071[min_max] <- d_date_sk
-|  |  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  182:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=61 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 81(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F49:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F50:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  81:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  81:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -1210,15 +1208,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=61 row-size=8B cardinality=7.30K cost=196669
 |  |  |  |     in pipelines: 81(GETNEXT)
 |  |  |  |
-|  |  |  80:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     runtime filters: RF071[min_max] -> ws_sold_date_sk
+|  |  |  80:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
 |  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
+|  |  |       table: rows=719.38K size=84.20MB
+|  |  |       partitions: 1824/1824 rows=719.38K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=60 row-size=12B cardinality=719.38K cost=108431
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=60 row-size=12B cardinality=719.38K cost=91208432
 |  |  |     in pipelines: 80(GETNEXT)
 |  |  |
 |  |  |--79:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1229,24 +1227,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=58,59 row-size=20B cardinality=1.44M cost=1441548
 |  |  |  |  in pipelines: 77(GETNEXT), 78(OPEN)
 |  |  |  |
-|  |  |  |--F87:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |--F89:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=06 plan-id=07 cohort-id=03
 |  |  |  |  |  build expressions: d_date_sk
-|  |  |  |  |  runtime filters: RF069[min_max] <- d_date_sk
-|  |  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  181:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=59 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 78(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F47:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F48:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  78:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  78:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -1259,15 +1256,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=59 row-size=8B cardinality=7.30K cost=196669
 |  |  |  |     in pipelines: 78(GETNEXT)
 |  |  |  |
-|  |  |  77:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |  |     runtime filters: RF069[min_max] -> cs_sold_date_sk
+|  |  |  77:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |  |  |     stored statistics:
-|  |  |       table: rows=1.44M size=96.62MB
+|  |  |       table: rows=1.44M size=151.13MB
+|  |  |       partitions: 1831/1831 rows=1.44M
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=58 row-size=12B cardinality=1.44M cost=166894
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=58 row-size=12B cardinality=1.44M cost=91566896
 |  |  |     in pipelines: 77(GETNEXT)
 |  |  |
 |  |  76:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1278,23 +1275,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=56,57 row-size=20B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 74(GETNEXT), 75(OPEN)
 |  |  |
-|  |  |--F86:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |--F88:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=05 plan-id=06 cohort-id=03
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  180:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=57 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  in pipelines: 75(GETNEXT)
 |  |  |  |
-|  |  |  F45:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F46:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  75:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  75:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -1307,10 +1304,10 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |     tuple-ids=57 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 75(GETNEXT)
 |  |  |
-|  |  74:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  74:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -1322,68 +1319,59 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  output: sum:merge(cs_quantity * cs_list_price), count:merge(*)
 |  |  group by: i_brand_id, i_class_id, i_category_id
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=54 row-size=36B cardinality=85.31K cost=426545
+|  |  tuple-ids=54 row-size=36B cardinality=85.03K cost=425145
 |  |  in pipelines: 179(GETNEXT), 43(OPEN)
 |  |
 |  178:EXCHANGE [HASH(i_brand_id,i_class_id,i_category_id)]
-|  |  mem-estimate=1.09MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=54 row-size=36B cardinality=85.31K cost=3333
+|  |  mem-estimate=1.21MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=54 row-size=36B cardinality=85.03K cost=3322
 |  |  in pipelines: 43(GETNEXT)
 |  |
-|  F26:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  Per-Instance Resources: mem-estimate=27.88MB mem-reservation=6.00MB thread-reservation=1
-|  max-parallelism=3 segment-costs=[2216867, 3333] cpu-comparison-result=41 [max(3 (self) vs 41 (sum children))]
+|  F29:PLAN FRAGMENT [HASH(cs_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=13.21MB mem-reservation=2.00MB thread-reservation=1
+|  max-parallelism=6 segment-costs=[598525, 3322] cpu-comparison-result=54 [max(18 (self) vs 54 (sum children))]
 |  72:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(cs_quantity AS DECIMAL(10,0)) * cs_list_price), count(*)
 |  |  group by: i_brand_id, i_class_id, i_category_id
 |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=54 row-size=36B cardinality=85.31K cost=426545
+|  |  tuple-ids=54 row-size=36B cardinality=85.03K cost=425145
 |  |  in pipelines: 43(GETNEXT)
 |  |
-|  71:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
+|  71:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
 |  |  hash-table-id=24
-|  |  hash predicates: cs_item_sk = tpcds_parquet.item.i_item_sk
+|  |  hash predicates: cs_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=34,36,35 row-size=52B cardinality=85.31K cost=85309
-|  |  in pipelines: 43(GETNEXT), 176(OPEN)
+|  |  tuple-ids=34,36,35 row-size=52B cardinality=85.03K cost=85029
+|  |  in pipelines: 43(GETNEXT), 177(OPEN)
 |  |
-|  |--F105:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.14MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
+|  |--F107:PLAN FRAGMENT [HASH(cs_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=11.94MB mem-reservation=3.88MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[18186, 17975] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=24 plan-id=25 cohort-id=01
-|  |  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  |  runtime filters: RF037[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  |  runtime filters: RF037[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |  |
-|  |  177:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=212.43KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=148 row-size=8B cardinality=17.98K cost=633
-|  |  |  in pipelines: 176(GETNEXT)
-|  |  |
-|  |  F42:PLAN FRAGMENT [HASH(tpcds_parquet.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=10.12MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
-|  |  176:AGGREGATE [FINALIZE]
-|  |  |  group by: tpcds_parquet.item.i_item_sk
+|  |  177:AGGREGATE [FINALIZE]
+|  |  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=148 row-size=8B cardinality=17.98K cost=17975
-|  |  |  in pipelines: 176(GETNEXT), 163(OPEN)
+|  |  |  in pipelines: 177(GETNEXT), 164(OPEN)
 |  |  |
-|  |  175:EXCHANGE [HASH(tpcds_parquet.item.i_item_sk)]
+|  |  176:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)]
 |  |  |  mem-estimate=118.81KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=148 row-size=8B cardinality=17.98K cost=211
-|  |  |  in pipelines: 163(GETNEXT)
+|  |  |  in pipelines: 164(GETNEXT)
 |  |  |
-|  |  F32:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  F33:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=20.76MB mem-reservation=3.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  |  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  |  70:AGGREGATE [STREAMING]
-|  |  |  group by: tpcds_parquet.item.i_item_sk
+|  |  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=148 row-size=8B cardinality=17.98K cost=148800
-|  |  |  in pipelines: 163(GETNEXT)
+|  |  |  in pipelines: 164(GETNEXT)
 |  |  |
 |  |  67:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  |  hash-table-id=25
@@ -1391,9 +1379,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  fk/pk conjuncts: iss.i_brand_id = i_brand_id, iss.i_category_id = i_category_id, iss.i_class_id = i_class_id
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=41,37 row-size=32B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 163(GETNEXT), 46(OPEN)
+|  |  |  in pipelines: 164(GETNEXT), 46(OPEN)
 |  |  |
-|  |  |--F106:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |--F108:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
 |  |  |  |  max-parallelism=6 segment-costs=[54422]
 |  |  |  JOIN BUILD
@@ -1402,15 +1390,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  runtime filters: RF045[min_max] <- i_brand_id, RF046[min_max] <- i_category_id, RF047[min_max] <- i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=54000
 |  |  |  |
-|  |  |  174:EXCHANGE [HASH(i_brand_id,i_class_id,i_category_id)]
+|  |  |  175:EXCHANGE [HASH(i_brand_id,i_class_id,i_category_id)]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=37 row-size=20B cardinality=18.00K cost=422
 |  |  |  |  in pipelines: 46(GETNEXT)
 |  |  |  |
-|  |  |  F41:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F42:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  46:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  |  46:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -1425,41 +1413,41 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  hash predicates: iss.i_brand_id IS NOT DISTINCT FROM iws.i_brand_id, iss.i_category_id IS NOT DISTINCT FROM iws.i_category_id, iss.i_class_id IS NOT DISTINCT FROM iws.i_class_id
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=41 row-size=12B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 163(GETNEXT), 172(OPEN)
+|  |  |  in pipelines: 164(GETNEXT), 173(OPEN)
 |  |  |
-|  |  |--F107:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  |  Per-Instance Resources: mem-estimate=2.85MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=6 [max(6 (self) vs 6 (sum children))]
+|  |  |--F109:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=26 plan-id=27 cohort-id=08
 |  |  |  |  build expressions: iws.i_brand_id, iws.i_category_id, iws.i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |  |
-|  |  |  173:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  |  mem-estimate=935.88KB mem-reservation=0B thread-reservation=0
+|  |  |  174:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
+|  |  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=147 row-size=12B cardinality=148.80K cost=2325
-|  |  |  |  in pipelines: 172(GETNEXT)
+|  |  |  |  in pipelines: 173(GETNEXT)
 |  |  |  |
-|  |  |  F40:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=2 instances=4 (adjusted from 2)
-|  |  |  Per-Instance Resources: mem-estimate=10.88MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=4 segment-costs=[448725, 2325] cpu-comparison-result=6 [max(4 (self) vs 6 (sum children))]
-|  |  |  172:AGGREGATE [FINALIZE]
+|  |  |  F41:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
+|  |  |  173:AGGREGATE [FINALIZE]
 |  |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  |  tuple-ids=147 row-size=12B cardinality=148.80K cost=446400
-|  |  |  |  in pipelines: 172(GETNEXT), 58(OPEN)
+|  |  |  |  in pipelines: 173(GETNEXT), 58(OPEN)
 |  |  |  |
-|  |  |  171:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  |  mem-estimate=903.88KB mem-reservation=0B thread-reservation=0
+|  |  |  172:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
+|  |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=147 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 58(GETNEXT)
 |  |  |  |
-|  |  |  F37:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=26.25MB mem-reservation=9.00MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[3705351, 2325] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+|  |  |  F38:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=3.12MB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[94805352, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  |  65:AGGREGATE [STREAMING]
 |  |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
-|  |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
+|  |  |  |  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
 |  |  |  |  tuple-ids=147 row-size=12B cardinality=148.80K cost=2158152
 |  |  |  |  in pipelines: 58(GETNEXT)
 |  |  |  |
@@ -1471,24 +1459,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=47,48,49 row-size=40B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 58(GETNEXT), 60(OPEN)
 |  |  |  |
-|  |  |  |--F108:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  |  max-parallelism=2 segment-costs=[7477]
+|  |  |  |--F110:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=27 plan-id=28 cohort-id=09
 |  |  |  |  |  build expressions: d3.d_date_sk
-|  |  |  |  |  runtime filters: RF063[min_max] <- d3.d_date_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
-|  |  |  |  170:EXCHANGE [BROADCAST]
+|  |  |  |  171:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
-|  |  |  |  |  tuple-ids=49 row-size=8B cardinality=7.30K cost=172
+|  |  |  |  |  tuple-ids=49 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 60(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F39:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F40:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  60:SCAN HDFS [tpcds_parquet.date_dim d3, RANDOM]
+|  |  |  |  60:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d3, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d3.d_year <= CAST(2001 AS INT), d3.d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -1509,24 +1496,24 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=47,48 row-size=32B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 58(GETNEXT), 59(OPEN)
 |  |  |  |
-|  |  |  |--F109:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  |  max-parallelism=2 segment-costs=[18844]
+|  |  |  |--F111:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=28 plan-id=29 cohort-id=09
 |  |  |  |  |  build expressions: iws.i_item_sk
 |  |  |  |  |  runtime filters: RF065[min_max] <- iws.i_item_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |  |
-|  |  |  |  169:EXCHANGE [BROADCAST]
+|  |  |  |  170:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  |  |  tuple-ids=48 row-size=20B cardinality=18.00K cost=844
+|  |  |  |  |  tuple-ids=48 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  |  in pipelines: 59(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F38:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F39:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  |  59:SCAN HDFS [tpcds_parquet.item iws, RANDOM]
+|  |  |  |  59:SCAN HDFS [tpcds_partitioned_parquet_snap.item iws, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -1536,15 +1523,16 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=48 row-size=20B cardinality=18.00K cost=50352
 |  |  |  |     in pipelines: 59(GETNEXT)
 |  |  |  |
-|  |  |  58:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     runtime filters: RF063[min_max] -> ws_sold_date_sk, RF065[min_max] -> ws_item_sk
+|  |  |  58:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |  |     runtime filters: RF065[min_max] -> ws_item_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
+|  |  |       table: rows=719.38K size=84.20MB
+|  |  |       partitions: 1824/1824 rows=719.38K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=47 row-size=12B cardinality=719.38K cost=108431
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=47 row-size=12B cardinality=719.38K cost=91208432
 |  |  |     in pipelines: 58(GETNEXT)
 |  |  |
 |  |  64:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
@@ -1552,38 +1540,38 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  hash predicates: iss.i_brand_id IS NOT DISTINCT FROM ics.i_brand_id, iss.i_category_id IS NOT DISTINCT FROM ics.i_category_id, iss.i_class_id IS NOT DISTINCT FROM ics.i_class_id
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=41 row-size=12B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 163(GETNEXT), 167(OPEN)
+|  |  |  in pipelines: 164(GETNEXT), 168(OPEN)
 |  |  |
-|  |  |--F110:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |--F112:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=29 plan-id=30 cohort-id=08
 |  |  |  |  build expressions: ics.i_brand_id, ics.i_category_id, ics.i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |  |
-|  |  |  168:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
+|  |  |  169:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
 |  |  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=146 row-size=12B cardinality=148.80K cost=2325
-|  |  |  |  in pipelines: 167(GETNEXT)
+|  |  |  |  in pipelines: 168(GETNEXT)
 |  |  |  |
-|  |  |  F36:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 3)
-|  |  |  Per-Instance Resources: mem-estimate=10.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
-|  |  |  167:AGGREGATE [FINALIZE]
+|  |  |  F37:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
+|  |  |  168:AGGREGATE [FINALIZE]
 |  |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  |  tuple-ids=146 row-size=12B cardinality=148.80K cost=446400
-|  |  |  |  in pipelines: 167(GETNEXT), 53(OPEN)
+|  |  |  |  in pipelines: 168(GETNEXT), 53(OPEN)
 |  |  |  |
-|  |  |  166:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
-|  |  |  |  mem-estimate=629.25KB mem-reservation=0B thread-reservation=0
+|  |  |  167:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
+|  |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=146 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 53(GETNEXT)
 |  |  |  |
-|  |  |  F33:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=9.00MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[7374634, 2325] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+|  |  |  F34:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.12MB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[98774636, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  |  63:AGGREGATE [STREAMING]
 |  |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
@@ -1598,24 +1586,23 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=43,44,45 row-size=40B cardinality=1.44M cost=1441548
 |  |  |  |  in pipelines: 53(GETNEXT), 55(OPEN)
 |  |  |  |
-|  |  |  |--F111:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |--F113:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=30 plan-id=31 cohort-id=10
 |  |  |  |  |  build expressions: d2.d_date_sk
-|  |  |  |  |  runtime filters: RF059[min_max] <- d2.d_date_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
-|  |  |  |  165:EXCHANGE [BROADCAST]
+|  |  |  |  166:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=45 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 55(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F35:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F36:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  55:SCAN HDFS [tpcds_parquet.date_dim d2, RANDOM]
+|  |  |  |  55:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d2, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d2.d_year <= CAST(2001 AS INT), d2.d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -1636,24 +1623,24 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  tuple-ids=43,44 row-size=32B cardinality=1.44M cost=1441548
 |  |  |  |  in pipelines: 53(GETNEXT), 54(OPEN)
 |  |  |  |
-|  |  |  |--F112:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |--F114:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=31 plan-id=32 cohort-id=10
 |  |  |  |  |  build expressions: ics.i_item_sk
 |  |  |  |  |  runtime filters: RF061[min_max] <- ics.i_item_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |  |
-|  |  |  |  164:EXCHANGE [BROADCAST]
+|  |  |  |  165:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=44 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  |  in pipelines: 54(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F34:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F35:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  |  54:SCAN HDFS [tpcds_parquet.item ics, RANDOM]
+|  |  |  |  54:SCAN HDFS [tpcds_partitioned_parquet_snap.item ics, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -1663,29 +1650,30 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |     tuple-ids=44 row-size=20B cardinality=18.00K cost=50352
 |  |  |  |     in pipelines: 54(GETNEXT)
 |  |  |  |
-|  |  |  53:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |  |     runtime filters: RF059[min_max] -> cs_sold_date_sk, RF061[min_max] -> cs_item_sk
+|  |  |  53:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|  |  |     runtime filters: RF061[min_max] -> cs_item_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=1.44M size=96.62MB
+|  |  |       table: rows=1.44M size=151.13MB
+|  |  |       partitions: 1831/1831 rows=1.44M
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=43 row-size=12B cardinality=1.44M cost=166894
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=43 row-size=12B cardinality=1.44M cost=91566896
 |  |  |     in pipelines: 53(GETNEXT)
 |  |  |
-|  |  163:AGGREGATE [FINALIZE]
+|  |  164:AGGREGATE [FINALIZE]
 |  |  |  group by: iss.i_brand_id, iss.i_class_id, iss.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=41 row-size=12B cardinality=148.80K cost=446400
-|  |  |  in pipelines: 163(GETNEXT), 47(OPEN)
+|  |  |  in pipelines: 164(GETNEXT), 47(OPEN)
 |  |  |
-|  |  162:EXCHANGE [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)]
+|  |  163:EXCHANGE [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)]
 |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=41 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 47(GETNEXT)
 |  |  |
-|  |  F29:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  F30:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.50MB thread-reservation=1
 |  |  max-parallelism=12 segment-costs=[105635772, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  52:AGGREGATE [STREAMING]
@@ -1702,7 +1690,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=38,39,40 row-size=40B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 47(GETNEXT), 49(OPEN)
 |  |  |
-|  |  |--F113:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |--F115:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
@@ -1710,15 +1698,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  build expressions: d1.d_date_sk
 |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
-|  |  |  161:EXCHANGE [BROADCAST]
+|  |  |  162:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=40 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  in pipelines: 49(GETNEXT)
 |  |  |  |
-|  |  |  F31:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F32:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  49:SCAN HDFS [tpcds_parquet.date_dim d1, RANDOM]
+|  |  |  49:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d1, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d1.d_year <= CAST(2001 AS INT), d1.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -1739,7 +1727,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=38,39 row-size=32B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 47(GETNEXT), 48(OPEN)
 |  |  |
-|  |  |--F114:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |--F116:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  JOIN BUILD
@@ -1748,15 +1736,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  |  runtime filters: RF057[min_max] <- iss.i_item_sk
 |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |
-|  |  |  160:EXCHANGE [BROADCAST]
+|  |  |  161:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=39 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  in pipelines: 48(GETNEXT)
 |  |  |  |
-|  |  |  F30:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F31:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  48:SCAN HDFS [tpcds_parquet.item iss, RANDOM]
+|  |  |  48:SCAN HDFS [tpcds_partitioned_parquet_snap.item iss, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     runtime filters: RF045[min_max] -> iss.i_brand_id, RF046[min_max] -> iss.i_category_id, RF047[min_max] -> iss.i_class_id
 |  |  |     stored statistics:
@@ -1767,11 +1755,11 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |     tuple-ids=39 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 48(GETNEXT)
 |  |  |
-|  |  47:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  47:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     runtime filters: RF057[min_max] -> ss_item_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -1779,34 +1767,34 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=38 row-size=12B cardinality=2.88M cost=91233752
 |  |     in pipelines: 47(GETNEXT)
 |  |
-|  69:HASH JOIN [INNER JOIN, BROADCAST]
+|  69:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=34
 |  |  hash predicates: cs_item_sk = i_item_sk
 |  |  fk/pk conjuncts: cs_item_sk = i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=34,36,35 row-size=52B cardinality=85.31K cost=85309
+|  |  tuple-ids=34,36,35 row-size=52B cardinality=85.03K cost=85029
 |  |  in pipelines: 43(GETNEXT), 44(OPEN)
 |  |
-|  |--F115:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F117:PLAN FRAGMENT [HASH(cs_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[19266]
+|  |  |  max-parallelism=6 segment-costs=[18422]
 |  |  JOIN BUILD
 |  |  |  join-table-id=34 plan-id=35 cohort-id=01
 |  |  |  build expressions: i_item_sk
 |  |  |  runtime filters: RF039[min_max] <- i_item_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |
-|  |  159:EXCHANGE [BROADCAST]
+|  |  160:EXCHANGE [HASH(i_item_sk)]
 |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=35 row-size=20B cardinality=18.00K cost=1266
+|  |  |  tuple-ids=35 row-size=20B cardinality=18.00K cost=422
 |  |  |  in pipelines: 44(GETNEXT)
 |  |  |
 |  |  F28:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  44:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  44:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
-|  |     runtime filters: RF037[min_max] -> tpcds_parquet.item.i_item_sk
+|  |     runtime filters: RF037[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
 |  |       columns: all
@@ -1815,22 +1803,31 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=35 row-size=20B cardinality=18.00K cost=50352
 |  |     in pipelines: 44(GETNEXT)
 |  |
+|  159:EXCHANGE [HASH(cs_item_sk)]
+|  |  mem-estimate=1.33MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=34,36 row-size=32B cardinality=85.03K cost=3322
+|  |  in pipelines: 43(GETNEXT)
+|  |
+|  F26:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
+|  Per-Instance Resources: mem-estimate=16.94MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[93023030]
 |  68:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=35
 |  |  hash predicates: cs_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=34,36 row-size=32B cardinality=85.31K cost=1441548
+|  |  tuple-ids=34,36 row-size=32B cardinality=85.03K cost=1441548
 |  |  in pipelines: 43(GETNEXT), 45(OPEN)
 |  |
-|  |--F116:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |--F118:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  JOIN BUILD
 |  |  |  join-table-id=35 plan-id=36 cohort-id=01
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF040[bloom] <- d_date_sk, RF041[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  runtime filters: RF040[bloom] <- d_date_sk
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |
 |  |  158:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
@@ -1840,7 +1837,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  F27:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196957]
-|  |  45:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  45:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(2001 AS INT), d_moy = CAST(11 AS INT)
 |  |     stored statistics:
@@ -1853,15 +1850,16 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=36 row-size=12B cardinality=108 cost=196955
 |  |     in pipelines: 45(GETNEXT)
 |  |
-|  43:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF041[min_max] -> cs_sold_date_sk, RF037[min_max] -> cs_item_sk, RF039[min_max] -> cs_item_sk, RF040[bloom] -> cs_sold_date_sk
+|  43:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|     runtime filters: RF037[min_max] -> cs_item_sk, RF039[min_max] -> cs_item_sk, RF040[bloom] -> cs_sold_date_sk
 |     stored statistics:
-|       table: rows=1.44M size=96.62MB
+|       table: rows=1.44M size=151.13MB
+|       partitions: 1831/1831 rows=1.44M
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|     tuple-ids=34 row-size=20B cardinality=1.44M cost=178156
+|     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=34 row-size=20B cardinality=1.44M cost=91578160
 |     in pipelines: 43(GETNEXT)
 |
 42:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
@@ -1871,9 +1869,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  tuple-ids=20,31 row-size=52B cardinality=148.80K cost=0
 |  in pipelines: 151(GETNEXT), 156(OPEN)
 |
-|--F81:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|--F83:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
-|  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=15 [max(3 (self) vs 15 (sum children))]
+|  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  mem-estimate=16B mem-reservation=0B thread-reservation=0 cost=0
@@ -1885,7 +1883,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |
 |  F25:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=96.00KB mem-reservation=0B thread-reservation=1
-|  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=15 [max(2 (self) vs 15 (sum children))]
+|  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=33 [max(2 (self) vs 33 (sum children))]
 |  156:AGGREGATE [FINALIZE]
 |  |  output: avg:merge(quantity * list_price)
 |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -1897,9 +1895,9 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  tuple-ids=30 row-size=16B cardinality=1 cost=1
 |  |  in pipelines: 41(GETNEXT)
 |  |
-|  F24:PLAN FRAGMENT [RANDOM] hosts=3 instances=15 (adjusted from 48)
-|  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=4.00MB thread-reservation=1
-|  max-parallelism=15 segment-costs=[131839765, 1] cpu-comparison-result=15 [max(15 (self) vs 12 (sum children))]
+|  F24:PLAN FRAGMENT [RANDOM] hosts=3 instances=33 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=512.00KB thread-reservation=1
+|  max-parallelism=33 segment-costs=[314339768, 1] cpu-comparison-result=33 [max(33 (self) vs 12 (sum children))]
 |  41:AGGREGATE
 |  |  output: avg(CAST(quantity AS DECIMAL(10,0)) * list_price)
 |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -1919,14 +1917,13 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=26,27 row-size=20B cardinality=719.38K cost=719384
 |  |  |  in pipelines: 38(GETNEXT), 39(OPEN)
 |  |  |
-|  |  |--F84:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |--F86:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=03 plan-id=04 cohort-id=02
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  runtime filters: RF035[min_max] <- d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  154:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -1936,7 +1933,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  F23:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  39:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  39:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -1949,15 +1946,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |     tuple-ids=27 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 39(GETNEXT)
 |  |  |
-|  |  38:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |     runtime filters: RF035[min_max] -> ws_sold_date_sk
+|  |  38:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
 |  |     stored statistics:
-|  |       table: rows=719.38K size=45.09MB
+|  |       table: rows=719.38K size=84.20MB
+|  |       partitions: 1824/1824 rows=719.38K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=26 row-size=12B cardinality=719.38K cost=108431
+|  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=26 row-size=12B cardinality=719.38K cost=91208432
 |  |     in pipelines: 38(GETNEXT)
 |  |
 |  |--37:HASH JOIN [INNER JOIN, BROADCAST]
@@ -1968,14 +1965,13 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  tuple-ids=24,25 row-size=20B cardinality=1.44M cost=1441548
 |  |  |  in pipelines: 35(GETNEXT), 36(OPEN)
 |  |  |
-|  |  |--F83:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |--F85:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=02 plan-id=03 cohort-id=02
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  runtime filters: RF033[min_max] <- d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  153:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -1985,7 +1981,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |  F21:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  36:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  36:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -1998,15 +1994,15 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  |     tuple-ids=25 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 36(GETNEXT)
 |  |  |
-|  |  35:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |     runtime filters: RF033[min_max] -> cs_sold_date_sk
+|  |  35:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |  |     stored statistics:
-|  |       table: rows=1.44M size=96.62MB
+|  |       table: rows=1.44M size=151.13MB
+|  |       partitions: 1831/1831 rows=1.44M
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=24 row-size=12B cardinality=1.44M cost=166894
+|  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=24 row-size=12B cardinality=1.44M cost=91566896
 |  |     in pipelines: 35(GETNEXT)
 |  |
 |  34:HASH JOIN [INNER JOIN, BROADCAST]
@@ -2017,13 +2013,13 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  tuple-ids=22,23 row-size=20B cardinality=2.88M cost=2880404
 |  |  in pipelines: 32(GETNEXT), 33(OPEN)
 |  |
-|  |--F82:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |--F84:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=02
 |  |  |  build expressions: d_date_sk
-|  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |
 |  |  152:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -2033,7 +2029,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |  F19:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196755]
-|  |  33:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  33:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |     stored statistics:
@@ -2046,10 +2042,10 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 |  |     tuple-ids=23 row-size=8B cardinality=7.30K cost=196669
 |  |     in pipelines: 33(GETNEXT)
 |  |
-|  32:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  32:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -2072,7 +2068,7 @@ max-parallelism=12 segment-costs=[749813, 429878, 215944, 13294224, 82367] cpu-c
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
 Per-Instance Resources: mem-estimate=27.88MB mem-reservation=3.00MB thread-reservation=1
-max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(12 (self) vs 41 (sum children))]
+max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=51 [max(12 (self) vs 51 (sum children))]
 30:AGGREGATE [STREAMING]
 |  output: sum(CAST(ss_quantity AS DECIMAL(10,0)) * ss_list_price), count(*)
 |  group by: i_brand_id, i_class_id, i_category_id
@@ -2082,18 +2078,18 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |
 29:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
 |  hash-table-id=12
-|  hash predicates: ss_item_sk = tpcds_parquet.item.i_item_sk
+|  hash predicates: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  tuple-ids=0,2,1 row-size=52B cardinality=170.55K cost=170551
 |  in pipelines: 01(GETNEXT), 148(OPEN)
 |
-|--F93:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|--F95:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=8.96MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
+|  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=43 [max(3 (self) vs 43 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=12 plan-id=13 cohort-id=01
-|  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  runtime filters: RF000[bloom] <- tpcds_parquet.item.i_item_sk, RF001[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  runtime filters: RF000[bloom] <- tpcds_partitioned_parquet_snap.item.i_item_sk, RF001[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |
 |  149:EXCHANGE [BROADCAST]
@@ -2101,25 +2097,25 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  tuple-ids=126 row-size=8B cardinality=17.98K cost=633
 |  |  in pipelines: 148(GETNEXT)
 |  |
-|  F16:PLAN FRAGMENT [HASH(tpcds_parquet.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  F16:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=10.12MB mem-reservation=1.94MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  148:AGGREGATE [FINALIZE]
-|  |  group by: tpcds_parquet.item.i_item_sk
+|  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=126 row-size=8B cardinality=17.98K cost=17975
 |  |  in pipelines: 148(GETNEXT), 135(OPEN)
 |  |
-|  147:EXCHANGE [HASH(tpcds_parquet.item.i_item_sk)]
+|  147:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)]
 |  |  mem-estimate=118.81KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=126 row-size=8B cardinality=17.98K cost=211
 |  |  in pipelines: 135(GETNEXT)
 |  |
 |  F06:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=20.76MB mem-reservation=3.94MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  28:AGGREGATE [STREAMING]
-|  |  group by: tpcds_parquet.item.i_item_sk
+|  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=126 row-size=8B cardinality=17.98K cost=148800
 |  |  in pipelines: 135(GETNEXT)
@@ -2132,7 +2128,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  tuple-ids=7,3 row-size=32B cardinality=148.80K cost=446400
 |  |  in pipelines: 135(GETNEXT), 04(OPEN)
 |  |
-|  |--F94:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |--F96:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=5.30MB mem-reservation=4.94MB thread-reservation=1 runtime-filters-memory=3.00MB
 |  |  |  max-parallelism=6 segment-costs=[54422]
 |  |  JOIN BUILD
@@ -2149,7 +2145,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  F15:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  04:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  04:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
@@ -2166,9 +2162,9 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  tuple-ids=7 row-size=12B cardinality=148.80K cost=446400
 |  |  in pipelines: 135(GETNEXT), 144(OPEN)
 |  |
-|  |--F95:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=4.85MB mem-reservation=3.94MB thread-reservation=1 runtime-filters-memory=2.00MB
-|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=6 [max(6 (self) vs 6 (sum children))]
+|  |--F97:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=4.60MB mem-reservation=3.94MB thread-reservation=1 runtime-filters-memory=2.00MB
+|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=14 plan-id=15 cohort-id=05
 |  |  |  build expressions: iws.i_brand_id, iws.i_category_id, iws.i_class_id
@@ -2176,13 +2172,13 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |
 |  |  145:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  mem-estimate=935.88KB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=125 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 144(GETNEXT)
 |  |  |
-|  |  F14:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=2 instances=4 (adjusted from 2)
-|  |  Per-Instance Resources: mem-estimate=10.88MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=4 segment-costs=[448725, 2325] cpu-comparison-result=6 [max(4 (self) vs 6 (sum children))]
+|  |  F14:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  144:AGGREGATE [FINALIZE]
 |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -2190,16 +2186,16 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  in pipelines: 144(GETNEXT), 16(OPEN)
 |  |  |
 |  |  143:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  mem-estimate=903.88KB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=125 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 16(GETNEXT)
 |  |  |
-|  |  F11:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  Per-Instance Resources: mem-estimate=26.25MB mem-reservation=9.00MB thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[3705351, 2325] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+|  |  F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=3.12MB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[94805352, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  23:AGGREGATE [STREAMING]
 |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
-|  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
+|  |  |  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
 |  |  |  tuple-ids=125 row-size=12B cardinality=148.80K cost=2158152
 |  |  |  in pipelines: 16(GETNEXT)
 |  |  |
@@ -2211,24 +2207,23 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  tuple-ids=13,14,15 row-size=40B cardinality=719.38K cost=719384
 |  |  |  in pipelines: 16(GETNEXT), 18(OPEN)
 |  |  |
-|  |  |--F96:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=2 segment-costs=[7477]
+|  |  |--F98:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=15 plan-id=16 cohort-id=06
 |  |  |  |  build expressions: d3.d_date_sk
-|  |  |  |  runtime filters: RF027[min_max] <- d3.d_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  142:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=15 row-size=8B cardinality=7.30K cost=172
+|  |  |  |  tuple-ids=15 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  in pipelines: 18(GETNEXT)
 |  |  |  |
 |  |  |  F13:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  18:SCAN HDFS [tpcds_parquet.date_dim d3, RANDOM]
+|  |  |  18:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d3, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d3.d_year <= CAST(2001 AS INT), d3.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -2249,24 +2244,24 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  tuple-ids=13,14 row-size=32B cardinality=719.38K cost=719384
 |  |  |  in pipelines: 16(GETNEXT), 17(OPEN)
 |  |  |
-|  |  |--F97:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=2 segment-costs=[18844]
+|  |  |--F99:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=16 plan-id=17 cohort-id=06
 |  |  |  |  build expressions: iws.i_item_sk
 |  |  |  |  runtime filters: RF029[min_max] <- iws.i_item_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |
 |  |  |  141:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=14 row-size=20B cardinality=18.00K cost=844
+|  |  |  |  tuple-ids=14 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  in pipelines: 17(GETNEXT)
 |  |  |  |
 |  |  |  F12:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  17:SCAN HDFS [tpcds_parquet.item iws, RANDOM]
+|  |  |  17:SCAN HDFS [tpcds_partitioned_parquet_snap.item iws, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -2276,15 +2271,16 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |     tuple-ids=14 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 17(GETNEXT)
 |  |  |
-|  |  16:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |     runtime filters: RF027[min_max] -> ws_sold_date_sk, RF029[min_max] -> ws_item_sk
+|  |  16:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |     runtime filters: RF029[min_max] -> ws_item_sk
 |  |     stored statistics:
-|  |       table: rows=719.38K size=45.09MB
+|  |       table: rows=719.38K size=84.20MB
+|  |       partitions: 1824/1824 rows=719.38K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=13 row-size=12B cardinality=719.38K cost=108431
+|  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=13 row-size=12B cardinality=719.38K cost=91208432
 |  |     in pipelines: 16(GETNEXT)
 |  |
 |  22:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
@@ -2294,9 +2290,9 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  tuple-ids=7 row-size=12B cardinality=148.80K cost=446400
 |  |  in pipelines: 135(GETNEXT), 139(OPEN)
 |  |
-|  |--F98:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |--F100:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=17 plan-id=18 cohort-id=05
 |  |  |  build expressions: ics.i_brand_id, ics.i_category_id, ics.i_class_id
@@ -2307,9 +2303,9 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  tuple-ids=124 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 139(GETNEXT)
 |  |  |
-|  |  F10:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 3)
-|  |  Per-Instance Resources: mem-estimate=10.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  F10:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  139:AGGREGATE [FINALIZE]
 |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -2317,13 +2313,13 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  in pipelines: 139(GETNEXT), 11(OPEN)
 |  |  |
 |  |  138:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
-|  |  |  mem-estimate=629.25KB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=124 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 11(GETNEXT)
 |  |  |
-|  |  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=9.00MB thread-reservation=1
-|  |  max-parallelism=3 segment-costs=[7374634, 2325] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+|  |  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.12MB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[98774636, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  21:AGGREGATE [STREAMING]
 |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
@@ -2338,14 +2334,13 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  tuple-ids=9,10,11 row-size=40B cardinality=1.44M cost=1441548
 |  |  |  in pipelines: 11(GETNEXT), 13(OPEN)
 |  |  |
-|  |  |--F99:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
+|  |  |--F101:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=18 plan-id=19 cohort-id=07
 |  |  |  |  build expressions: d2.d_date_sk
-|  |  |  |  runtime filters: RF023[min_max] <- d2.d_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  137:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -2355,7 +2350,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  13:SCAN HDFS [tpcds_parquet.date_dim d2, RANDOM]
+|  |  |  13:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d2, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d2.d_year <= CAST(2001 AS INT), d2.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -2376,14 +2371,14 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  tuple-ids=9,10 row-size=32B cardinality=1.44M cost=1441548
 |  |  |  in pipelines: 11(GETNEXT), 12(OPEN)
 |  |  |
-|  |  |--F100:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
+|  |  |--F102:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=19 plan-id=20 cohort-id=07
 |  |  |  |  build expressions: ics.i_item_sk
 |  |  |  |  runtime filters: RF025[min_max] <- ics.i_item_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |
 |  |  |  136:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
@@ -2393,7 +2388,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  12:SCAN HDFS [tpcds_parquet.item ics, RANDOM]
+|  |  |  12:SCAN HDFS [tpcds_partitioned_parquet_snap.item ics, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -2403,15 +2398,16 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  |     tuple-ids=10 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 12(GETNEXT)
 |  |  |
-|  |  11:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |     runtime filters: RF023[min_max] -> cs_sold_date_sk, RF025[min_max] -> cs_item_sk
+|  |  11:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|  |     runtime filters: RF025[min_max] -> cs_item_sk
 |  |     stored statistics:
-|  |       table: rows=1.44M size=96.62MB
+|  |       table: rows=1.44M size=151.13MB
+|  |       partitions: 1831/1831 rows=1.44M
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=9 row-size=12B cardinality=1.44M cost=166894
+|  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=9 row-size=12B cardinality=1.44M cost=91566896
 |  |     in pipelines: 11(GETNEXT)
 |  |
 |  135:AGGREGATE [FINALIZE]
@@ -2442,7 +2438,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  tuple-ids=4,5,6 row-size=40B cardinality=2.88M cost=2880404
 |  |  in pipelines: 05(GETNEXT), 07(OPEN)
 |  |
-|  |--F101:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F103:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  JOIN BUILD
@@ -2458,7 +2454,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  F05:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196755]
-|  |  07:SCAN HDFS [tpcds_parquet.date_dim d1, RANDOM]
+|  |  07:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d1, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d1.d_year <= CAST(2001 AS INT), d1.d_year >= CAST(1999 AS INT)
 |  |     stored statistics:
@@ -2479,7 +2475,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  tuple-ids=4,5 row-size=32B cardinality=2.88M cost=2880404
 |  |  in pipelines: 05(GETNEXT), 06(OPEN)
 |  |
-|  |--F102:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F104:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  JOIN BUILD
@@ -2497,7 +2493,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |  Per-Host Shared Resources: mem-estimate=5.00MB mem-reservation=5.00MB thread-reservation=0 runtime-filters-memory=5.00MB
 |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  06:SCAN HDFS [tpcds_parquet.item iss, RANDOM]
+|  |  06:SCAN HDFS [tpcds_partitioned_parquet_snap.item iss, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     runtime filters: RF009[min_max] -> iss.i_brand_id, RF010[min_max] -> iss.i_category_id, RF011[min_max] -> iss.i_class_id, RF006[bloom] -> iss.i_brand_id, RF007[bloom] -> iss.i_category_id, RF008[bloom] -> iss.i_class_id, RF012[bloom] -> iss.i_brand_id, RF013[bloom] -> iss.i_category_id
 |  |     stored statistics:
@@ -2508,11 +2504,11 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  |     tuple-ids=5 row-size=20B cardinality=18.00K cost=50352
 |  |     in pipelines: 06(GETNEXT)
 |  |
-|  05:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  05:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     runtime filters: RF021[min_max] -> ss_item_sk
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -2528,7 +2524,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  tuple-ids=0,2,1 row-size=52B cardinality=170.55K cost=170551
 |  in pipelines: 01(GETNEXT), 02(OPEN)
 |
-|--F103:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|--F105:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=9.12MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  max-parallelism=3 segment-costs=[19266]
 |  JOIN BUILD
@@ -2546,9 +2542,9 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50774]
-|  02:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  02:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |     HDFS partitions=1/1 files=1 size=1.73MB
-|     runtime filters: RF001[min_max] -> tpcds_parquet.item.i_item_sk, RF000[bloom] -> tpcds_parquet.item.i_item_sk
+|     runtime filters: RF001[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk, RF000[bloom] -> tpcds_partitioned_parquet_snap.item.i_item_sk
 |     stored statistics:
 |       table: rows=18.00K size=1.73MB
 |       columns: all
@@ -2565,7 +2561,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  tuple-ids=0,2 row-size=32B cardinality=170.55K cost=2880404
 |  in pipelines: 01(GETNEXT), 03(OPEN)
 |
-|--F104:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|--F106:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  max-parallelism=3 segment-costs=[114]
 |  JOIN BUILD
@@ -2582,7 +2578,7 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[196957]
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  03:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     predicates: d_year = CAST(2001 AS INT), d_moy = CAST(11 AS INT)
 |     stored statistics:
@@ -2595,11 +2591,11 @@ max-parallelism=12 segment-costs=[95330517, 5813] cpu-comparison-result=41 [max(
 |     tuple-ids=2 row-size=12B cardinality=108 cost=196955
 |     in pipelines: 03(GETNEXT)
 |
-01:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-   HDFS partitions=1824/1824 files=1824 size=200.96MB
+01:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=199.36MB
    runtime filters: RF001[min_max] -> ss_item_sk, RF003[min_max] -> ss_item_sk, RF004[bloom] -> ss_sold_date_sk, RF000[bloom] -> ss_item_sk, RF002[bloom] -> ss_item_sk
    stored statistics:
-     table: rows=2.88M size=200.96MB
+     table: rows=2.88M size=199.36MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -2738,11 +2734,11 @@ ORDER BY this_year.channel,
          this_year.i_category_id
 LIMIT 100
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=447.50MB Threads=121
-Per-Host Resource Estimates: Memory=1.58GB
+Max Per-Host Resource Reservation: Memory=564.75MB Threads=145
+Per-Host Resource Estimates: Memory=2.19GB
 F56: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=[61] cpu-comparison-result=118 [max(1 (self) vs 118 (sum children))]
+|  max-parallelism=1 segment-costs=[61] cpu-comparison-result=174 [max(1 (self) vs 174 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: channel, i_brand_id, i_class_id, i_category_id, sales, number_sales, channel, i_brand_id, i_class_id, i_category_id, sales, number_sales
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=60
@@ -2756,7 +2752,7 @@ PLAN-ROOT SINK
 |
 F19:PLAN FRAGMENT [HASH(i_brand_id,i_class_id,i_category_id)] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=10.13MB mem-reservation=1.94MB thread-reservation=1
-max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6 (self) vs 118 (sum children))]
+max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=174 [max(6 (self) vs 174 (sum children))]
 91:TOP-N [LIMIT=100]
 |  order by: channel ASC, i_brand_id ASC, i_class_id ASC, i_category_id ASC
 |  mem-estimate=480B mem-reservation=0B thread-reservation=0
@@ -2773,7 +2769,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |
 |--F57:PLAN FRAGMENT [HASH(i_brand_id,i_class_id,i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=14.94MB mem-reservation=6.88MB thread-reservation=1 runtime-filters-memory=3.00MB
-|  |  max-parallelism=6 segment-costs=[1366, 813] cpu-comparison-result=59 [max(6 (self) vs 59 (sum children))]
+|  |  max-parallelism=6 segment-costs=[1366, 813] cpu-comparison-result=87 [max(6 (self) vs 87 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: i_brand_id, i_category_id, i_class_id
@@ -2789,7 +2785,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |
 |  |--F58:PLAN FRAGMENT [HASH(i_brand_id,i_class_id,i_category_id)] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=15 [max(3 (self) vs 15 (sum children))]
+|  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=02
 |  |  |  mem-estimate=16B mem-reservation=0B thread-reservation=0 cost=0
@@ -2801,7 +2797,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |
 |  |  F55:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=96.00KB mem-reservation=0B thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=15 [max(2 (self) vs 15 (sum children))]
+|  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=33 [max(2 (self) vs 33 (sum children))]
 |  |  150:AGGREGATE [FINALIZE]
 |  |  |  output: avg:merge(quantity * list_price)
 |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -2813,9 +2809,9 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  tuple-ids=69 row-size=16B cardinality=1 cost=1
 |  |  |  in pipelines: 88(GETNEXT)
 |  |  |
-|  |  F54:PLAN FRAGMENT [RANDOM] hosts=3 instances=15 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=4.00MB thread-reservation=1
-|  |  max-parallelism=15 segment-costs=[131839765, 1] cpu-comparison-result=15 [max(15 (self) vs 12 (sum children))]
+|  |  F54:PLAN FRAGMENT [RANDOM] hosts=3 instances=33 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=512.00KB thread-reservation=1
+|  |  max-parallelism=33 segment-costs=[314339768, 1] cpu-comparison-result=33 [max(33 (self) vs 12 (sum children))]
 |  |  88:AGGREGATE
 |  |  |  output: avg(CAST(quantity AS DECIMAL(10,0)) * list_price)
 |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -2836,13 +2832,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  in pipelines: 85(GETNEXT), 86(OPEN)
 |  |  |  |
 |  |  |  |--F61:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=04 plan-id=05 cohort-id=03
 |  |  |  |  |  build expressions: d_date_sk
-|  |  |  |  |  runtime filters: RF081[min_max] <- d_date_sk
-|  |  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  148:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -2852,7 +2847,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  F53:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  86:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  86:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -2865,15 +2860,15 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |     tuple-ids=66 row-size=8B cardinality=7.30K cost=196669
 |  |  |  |     in pipelines: 86(GETNEXT)
 |  |  |  |
-|  |  |  85:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     runtime filters: RF081[min_max] -> ws_sold_date_sk
+|  |  |  85:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
 |  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
+|  |  |       table: rows=719.38K size=84.20MB
+|  |  |       partitions: 1824/1824 rows=719.38K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=65 row-size=12B cardinality=719.38K cost=108431
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=65 row-size=12B cardinality=719.38K cost=91208432
 |  |  |     in pipelines: 85(GETNEXT)
 |  |  |
 |  |  |--84:HASH JOIN [INNER JOIN, BROADCAST]
@@ -2885,13 +2880,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  in pipelines: 82(GETNEXT), 83(OPEN)
 |  |  |  |
 |  |  |  |--F60:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=03 plan-id=04 cohort-id=03
 |  |  |  |  |  build expressions: d_date_sk
-|  |  |  |  |  runtime filters: RF079[min_max] <- d_date_sk
-|  |  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  147:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -2901,7 +2895,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  F51:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  83:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  83:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -2914,15 +2908,15 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |     tuple-ids=64 row-size=8B cardinality=7.30K cost=196669
 |  |  |  |     in pipelines: 83(GETNEXT)
 |  |  |  |
-|  |  |  82:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |  |     runtime filters: RF079[min_max] -> cs_sold_date_sk
+|  |  |  82:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |  |  |     stored statistics:
-|  |  |       table: rows=1.44M size=96.62MB
+|  |  |       table: rows=1.44M size=151.13MB
+|  |  |       partitions: 1831/1831 rows=1.44M
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=63 row-size=12B cardinality=1.44M cost=166894
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=63 row-size=12B cardinality=1.44M cost=91566896
 |  |  |     in pipelines: 82(GETNEXT)
 |  |  |
 |  |  81:HASH JOIN [INNER JOIN, BROADCAST]
@@ -2934,12 +2928,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  in pipelines: 79(GETNEXT), 80(OPEN)
 |  |  |
 |  |  |--F59:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=02 plan-id=03 cohort-id=03
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  146:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -2949,7 +2943,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  F49:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  80:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  80:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -2962,10 +2956,10 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |     tuple-ids=62 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 80(GETNEXT)
 |  |  |
-|  |  79:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  79:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -2987,7 +2981,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |
 |  F28:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=26.94MB mem-reservation=3.00MB thread-reservation=1
-|  max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(12 (self) vs 44 (sum children))]
+|  max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=54 [max(12 (self) vs 54 (sum children))]
 |  77:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(ss_quantity AS DECIMAL(10,0)) * ss_list_price), count(*)
 |  |  group by: i_brand_id, i_class_id, i_category_id
@@ -3034,7 +3028,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  F45:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[270290]
-|  |  70:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  70:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(1999 AS INT), d_dom = CAST(11 AS INT), d_moy = CAST(12 AS INT)
 |  |     stored statistics:
@@ -3050,18 +3044,18 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |
 |  75:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
 |  |  hash-table-id=06
-|  |  hash predicates: ss_item_sk = tpcds_parquet.item.i_item_sk
+|  |  hash predicates: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=37,38,39 row-size=48B cardinality=2.88M cost=2880404
 |  |  in pipelines: 45(GETNEXT), 140(OPEN)
 |  |
 |  |--F63:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=7.96MB mem-reservation=7.75MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
+|  |  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=43 [max(3 (self) vs 43 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=06 plan-id=07 cohort-id=02
-|  |  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  |  runtime filters: RF047[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  |  runtime filters: RF047[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |  |
 |  |  141:EXCHANGE [BROADCAST]
@@ -3069,25 +3063,25 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  tuple-ids=114 row-size=8B cardinality=17.98K cost=633
 |  |  |  in pipelines: 140(GETNEXT)
 |  |  |
-|  |  F44:PLAN FRAGMENT [HASH(tpcds_parquet.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  F44:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=10.12MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  |  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  |  140:AGGREGATE [FINALIZE]
-|  |  |  group by: tpcds_parquet.item.i_item_sk
+|  |  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=114 row-size=8B cardinality=17.98K cost=17975
 |  |  |  in pipelines: 140(GETNEXT), 127(OPEN)
 |  |  |
-|  |  139:EXCHANGE [HASH(tpcds_parquet.item.i_item_sk)]
+|  |  139:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)]
 |  |  |  mem-estimate=118.81KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=114 row-size=8B cardinality=17.98K cost=211
 |  |  |  in pipelines: 127(GETNEXT)
 |  |  |
 |  |  F34:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=20.76MB mem-reservation=3.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  |  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  |  74:AGGREGATE [STREAMING]
-|  |  |  group by: tpcds_parquet.item.i_item_sk
+|  |  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  tuple-ids=114 row-size=8B cardinality=17.98K cost=148800
 |  |  |  in pipelines: 127(GETNEXT)
@@ -3117,7 +3111,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  F43:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  48:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  |  48:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -3135,21 +3129,21 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  in pipelines: 127(GETNEXT), 136(OPEN)
 |  |  |
 |  |  |--F65:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  |  Per-Instance Resources: mem-estimate=2.85MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=6 [max(6 (self) vs 6 (sum children))]
+|  |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=08 plan-id=09 cohort-id=04
 |  |  |  |  build expressions: iws.i_brand_id, iws.i_category_id, iws.i_class_id
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |  |
 |  |  |  137:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  |  mem-estimate=935.88KB mem-reservation=0B thread-reservation=0
+|  |  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=112 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 136(GETNEXT)
 |  |  |  |
-|  |  |  F42:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=2 instances=4 (adjusted from 2)
-|  |  |  Per-Instance Resources: mem-estimate=10.88MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=4 segment-costs=[448725, 2325] cpu-comparison-result=6 [max(4 (self) vs 6 (sum children))]
+|  |  |  F42:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  136:AGGREGATE [FINALIZE]
 |  |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -3157,16 +3151,16 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  in pipelines: 136(GETNEXT), 60(OPEN)
 |  |  |  |
 |  |  |  135:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  |  mem-estimate=903.88KB mem-reservation=0B thread-reservation=0
+|  |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=112 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 60(GETNEXT)
 |  |  |  |
-|  |  |  F39:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=26.25MB mem-reservation=9.00MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[3705351, 2325] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+|  |  |  F39:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=3.12MB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[94805352, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  |  67:AGGREGATE [STREAMING]
 |  |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
-|  |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
+|  |  |  |  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
 |  |  |  |  tuple-ids=112 row-size=12B cardinality=148.80K cost=2158152
 |  |  |  |  in pipelines: 60(GETNEXT)
 |  |  |  |
@@ -3178,24 +3172,23 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  tuple-ids=50,51,52 row-size=40B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 60(GETNEXT), 62(OPEN)
 |  |  |  |
-|  |  |  |--F66:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  |  max-parallelism=2 segment-costs=[7477]
+|  |  |  |--F66:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=09 plan-id=10 cohort-id=05
 |  |  |  |  |  build expressions: d3.d_date_sk
-|  |  |  |  |  runtime filters: RF073[min_max] <- d3.d_date_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  134:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
-|  |  |  |  |  tuple-ids=52 row-size=8B cardinality=7.30K cost=172
+|  |  |  |  |  tuple-ids=52 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  |  in pipelines: 62(GETNEXT)
 |  |  |  |  |
 |  |  |  |  F41:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  62:SCAN HDFS [tpcds_parquet.date_dim d3, RANDOM]
+|  |  |  |  62:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d3, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d3.d_year <= CAST(2001 AS INT), d3.d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -3216,24 +3209,24 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  tuple-ids=50,51 row-size=32B cardinality=719.38K cost=719384
 |  |  |  |  in pipelines: 60(GETNEXT), 61(OPEN)
 |  |  |  |
-|  |  |  |--F67:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  |  max-parallelism=2 segment-costs=[18844]
+|  |  |  |--F67:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=10 plan-id=11 cohort-id=05
 |  |  |  |  |  build expressions: iws.i_item_sk
 |  |  |  |  |  runtime filters: RF075[min_max] <- iws.i_item_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |  |
 |  |  |  |  133:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  |  |  tuple-ids=51 row-size=20B cardinality=18.00K cost=844
+|  |  |  |  |  tuple-ids=51 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  |  in pipelines: 61(GETNEXT)
 |  |  |  |  |
 |  |  |  |  F40:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  |  61:SCAN HDFS [tpcds_parquet.item iws, RANDOM]
+|  |  |  |  61:SCAN HDFS [tpcds_partitioned_parquet_snap.item iws, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -3243,15 +3236,16 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |     tuple-ids=51 row-size=20B cardinality=18.00K cost=50352
 |  |  |  |     in pipelines: 61(GETNEXT)
 |  |  |  |
-|  |  |  60:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     runtime filters: RF073[min_max] -> ws_sold_date_sk, RF075[min_max] -> ws_item_sk
+|  |  |  60:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |  |     runtime filters: RF075[min_max] -> ws_item_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
+|  |  |       table: rows=719.38K size=84.20MB
+|  |  |       partitions: 1824/1824 rows=719.38K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=50 row-size=12B cardinality=719.38K cost=108431
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=50 row-size=12B cardinality=719.38K cost=91208432
 |  |  |     in pipelines: 60(GETNEXT)
 |  |  |
 |  |  66:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
@@ -3263,7 +3257,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |
 |  |  |--F68:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=11 plan-id=12 cohort-id=04
 |  |  |  |  build expressions: ics.i_brand_id, ics.i_category_id, ics.i_class_id
@@ -3274,9 +3268,9 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  tuple-ids=111 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 131(GETNEXT)
 |  |  |  |
-|  |  |  F38:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 3)
-|  |  |  Per-Instance Resources: mem-estimate=10.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  |  F38:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  131:AGGREGATE [FINALIZE]
 |  |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -3284,13 +3278,13 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  in pipelines: 131(GETNEXT), 55(OPEN)
 |  |  |  |
 |  |  |  130:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
-|  |  |  |  mem-estimate=629.25KB mem-reservation=0B thread-reservation=0
+|  |  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=111 row-size=12B cardinality=148.80K cost=2325
 |  |  |  |  in pipelines: 55(GETNEXT)
 |  |  |  |
-|  |  |  F35:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=9.00MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[7374634, 2325] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+|  |  |  F35:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.12MB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[98774636, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  |  65:AGGREGATE [STREAMING]
 |  |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
@@ -3306,13 +3300,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  in pipelines: 55(GETNEXT), 57(OPEN)
 |  |  |  |
 |  |  |  |--F69:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=12 plan-id=13 cohort-id=06
 |  |  |  |  |  build expressions: d2.d_date_sk
-|  |  |  |  |  runtime filters: RF069[min_max] <- d2.d_date_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |  |
 |  |  |  |  129:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -3322,7 +3315,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  F37:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  |  57:SCAN HDFS [tpcds_parquet.date_dim d2, RANDOM]
+|  |  |  |  57:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d2, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d2.d_year <= CAST(2001 AS INT), d2.d_year >= CAST(1999 AS INT)
 |  |  |  |     stored statistics:
@@ -3344,13 +3337,13 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  in pipelines: 55(GETNEXT), 56(OPEN)
 |  |  |  |
 |  |  |  |--F70:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=13 plan-id=14 cohort-id=06
 |  |  |  |  |  build expressions: ics.i_item_sk
 |  |  |  |  |  runtime filters: RF071[min_max] <- ics.i_item_sk
-|  |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |  |
 |  |  |  |  128:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
@@ -3360,7 +3353,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |  F36:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  |  56:SCAN HDFS [tpcds_parquet.item ics, RANDOM]
+|  |  |  |  56:SCAN HDFS [tpcds_partitioned_parquet_snap.item ics, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -3370,15 +3363,16 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  |     tuple-ids=47 row-size=20B cardinality=18.00K cost=50352
 |  |  |  |     in pipelines: 56(GETNEXT)
 |  |  |  |
-|  |  |  55:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |  |     runtime filters: RF069[min_max] -> cs_sold_date_sk, RF071[min_max] -> cs_item_sk
+|  |  |  55:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|  |  |     runtime filters: RF071[min_max] -> cs_item_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=1.44M size=96.62MB
+|  |  |       table: rows=1.44M size=151.13MB
+|  |  |       partitions: 1831/1831 rows=1.44M
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=46 row-size=12B cardinality=1.44M cost=166894
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |  |     tuple-ids=46 row-size=12B cardinality=1.44M cost=91566896
 |  |  |     in pipelines: 55(GETNEXT)
 |  |  |
 |  |  127:AGGREGATE [FINALIZE]
@@ -3425,7 +3419,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  F33:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  51:SCAN HDFS [tpcds_parquet.date_dim d1, RANDOM]
+|  |  |  51:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d1, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d1.d_year <= CAST(2001 AS INT), d1.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -3463,7 +3457,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  F32:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  50:SCAN HDFS [tpcds_parquet.item iss, RANDOM]
+|  |  |  50:SCAN HDFS [tpcds_partitioned_parquet_snap.item iss, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     runtime filters: RF055[min_max] -> iss.i_brand_id, RF056[min_max] -> iss.i_category_id, RF057[min_max] -> iss.i_class_id
 |  |  |     stored statistics:
@@ -3474,11 +3468,11 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |     tuple-ids=42 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 50(GETNEXT)
 |  |  |
-|  |  49:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  49:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     runtime filters: RF067[min_max] -> ss_item_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -3511,7 +3505,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[51428]
-|  |  47:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  47:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     runtime filters: RF045[min_max] -> d_week_seq, RF044[bloom] -> d_week_seq
 |  |     stored statistics:
@@ -3547,9 +3541,9 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  F29:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  46:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  46:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
-|  |     runtime filters: RF047[min_max] -> tpcds_parquet.item.i_item_sk
+|  |     runtime filters: RF047[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
 |  |       columns: all
@@ -3558,11 +3552,11 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |     tuple-ids=38 row-size=20B cardinality=18.00K cost=50352
 |  |     in pipelines: 46(GETNEXT)
 |  |
-|  45:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  45:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     runtime filters: RF047[min_max] -> ss_item_sk, RF051[min_max] -> ss_item_sk
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -3579,7 +3573,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |
 |--F75:PLAN FRAGMENT [HASH(i_brand_id,i_class_id,i_category_id)] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
-|  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=15 [max(3 (self) vs 15 (sum children))]
+|  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=18 plan-id=19 cohort-id=01
 |  |  mem-estimate=16B mem-reservation=0B thread-reservation=0 cost=0
@@ -3591,7 +3585,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |
 |  F27:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=96.00KB mem-reservation=0B thread-reservation=1
-|  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=15 [max(2 (self) vs 15 (sum children))]
+|  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=33 [max(2 (self) vs 33 (sum children))]
 |  120:AGGREGATE [FINALIZE]
 |  |  output: avg:merge(quantity * list_price)
 |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -3603,9 +3597,9 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  tuple-ids=32 row-size=16B cardinality=1 cost=1
 |  |  in pipelines: 43(GETNEXT)
 |  |
-|  F26:PLAN FRAGMENT [RANDOM] hosts=3 instances=15 (adjusted from 48)
-|  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=4.00MB thread-reservation=1
-|  max-parallelism=15 segment-costs=[131839765, 1] cpu-comparison-result=15 [max(15 (self) vs 12 (sum children))]
+|  F26:PLAN FRAGMENT [RANDOM] hosts=3 instances=33 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=16.02MB mem-reservation=512.00KB thread-reservation=1
+|  max-parallelism=33 segment-costs=[314339768, 1] cpu-comparison-result=33 [max(33 (self) vs 12 (sum children))]
 |  43:AGGREGATE
 |  |  output: avg(CAST(quantity AS DECIMAL(10,0)) * list_price)
 |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
@@ -3626,13 +3620,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  in pipelines: 40(GETNEXT), 41(OPEN)
 |  |  |
 |  |  |--F78:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=21 plan-id=22 cohort-id=07
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  runtime filters: RF043[min_max] <- d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  118:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -3642,7 +3635,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  F25:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  41:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  41:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -3655,15 +3648,15 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |     tuple-ids=29 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 41(GETNEXT)
 |  |  |
-|  |  40:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |     runtime filters: RF043[min_max] -> ws_sold_date_sk
+|  |  40:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
 |  |     stored statistics:
-|  |       table: rows=719.38K size=45.09MB
+|  |       table: rows=719.38K size=84.20MB
+|  |       partitions: 1824/1824 rows=719.38K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=28 row-size=12B cardinality=719.38K cost=108431
+|  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=28 row-size=12B cardinality=719.38K cost=91208432
 |  |     in pipelines: 40(GETNEXT)
 |  |
 |  |--39:HASH JOIN [INNER JOIN, BROADCAST]
@@ -3675,13 +3668,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  in pipelines: 37(GETNEXT), 38(OPEN)
 |  |  |
 |  |  |--F77:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=20 plan-id=21 cohort-id=07
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  runtime filters: RF041[min_max] <- d_date_sk
-|  |  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  117:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -3691,7 +3683,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |  F23:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  38:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  38:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -3704,15 +3696,15 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  |     tuple-ids=27 row-size=8B cardinality=7.30K cost=196669
 |  |  |     in pipelines: 38(GETNEXT)
 |  |  |
-|  |  37:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |     runtime filters: RF041[min_max] -> cs_sold_date_sk
+|  |  37:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |  |     stored statistics:
-|  |       table: rows=1.44M size=96.62MB
+|  |       table: rows=1.44M size=151.13MB
+|  |       partitions: 1831/1831 rows=1.44M
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=26 row-size=12B cardinality=1.44M cost=166894
+|  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=26 row-size=12B cardinality=1.44M cost=91566896
 |  |     in pipelines: 37(GETNEXT)
 |  |
 |  36:HASH JOIN [INNER JOIN, BROADCAST]
@@ -3724,12 +3716,12 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  in pipelines: 34(GETNEXT), 35(OPEN)
 |  |
 |  |--F76:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=9.75MB mem-reservation=9.69MB thread-reservation=1
+|  |  |  Per-Instance Resources: mem-estimate=21.38MB mem-reservation=21.31MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  JOIN BUILD
 |  |  |  join-table-id=19 plan-id=20 cohort-id=07
 |  |  |  build expressions: d_date_sk
-|  |  |  mem-estimate=9.69MB mem-reservation=9.69MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  mem-estimate=21.31MB mem-reservation=21.31MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |
 |  |  116:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -3739,7 +3731,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |  F21:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196755]
-|  |  35:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  35:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year <= CAST(2001 AS INT), d_year >= CAST(1999 AS INT)
 |  |     stored statistics:
@@ -3752,10 +3744,10 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 |  |     tuple-ids=25 row-size=8B cardinality=7.30K cost=196669
 |  |     in pipelines: 35(GETNEXT)
 |  |
-|  34:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  34:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -3778,7 +3770,7 @@ max-parallelism=6 segment-costs=[1366, 833, 1] cpu-comparison-result=118 [max(6
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
 Per-Instance Resources: mem-estimate=26.94MB mem-reservation=3.00MB thread-reservation=1
-max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(12 (self) vs 44 (sum children))]
+max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=54 [max(12 (self) vs 54 (sum children))]
 32:AGGREGATE [STREAMING]
 |  output: sum(CAST(ss_quantity AS DECIMAL(10,0)) * ss_list_price), count(*)
 |  group by: i_brand_id, i_class_id, i_category_id
@@ -3825,7 +3817,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  F17:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[270290]
-|  25:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  25:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     predicates: d_year = CAST(2000 AS INT), d_dom = CAST(11 AS INT), d_moy = CAST(12 AS INT)
 |     stored statistics:
@@ -3841,18 +3833,18 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |
 30:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
 |  hash-table-id=23
-|  hash predicates: ss_item_sk = tpcds_parquet.item.i_item_sk
+|  hash predicates: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  tuple-ids=0,1,2 row-size=48B cardinality=2.88M cost=2880404
 |  in pipelines: 00(GETNEXT), 110(OPEN)
 |
 |--F80:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=8.96MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=33 [max(3 (self) vs 33 (sum children))]
+|  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=43 [max(3 (self) vs 43 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=23 plan-id=24 cohort-id=01
-|  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  runtime filters: RF008[bloom] <- tpcds_parquet.item.i_item_sk, RF009[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  runtime filters: RF008[bloom] <- tpcds_partitioned_parquet_snap.item.i_item_sk, RF009[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |
 |  111:EXCHANGE [BROADCAST]
@@ -3860,25 +3852,25 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  tuple-ids=91 row-size=8B cardinality=17.98K cost=633
 |  |  in pipelines: 110(GETNEXT)
 |  |
-|  F16:PLAN FRAGMENT [HASH(tpcds_parquet.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  F16:PLAN FRAGMENT [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=10.12MB mem-reservation=1.94MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  110:AGGREGATE [FINALIZE]
-|  |  group by: tpcds_parquet.item.i_item_sk
+|  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=91 row-size=8B cardinality=17.98K cost=17975
 |  |  in pipelines: 110(GETNEXT), 97(OPEN)
 |  |
-|  109:EXCHANGE [HASH(tpcds_parquet.item.i_item_sk)]
+|  109:EXCHANGE [HASH(tpcds_partitioned_parquet_snap.item.i_item_sk)]
 |  |  mem-estimate=118.81KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=91 row-size=8B cardinality=17.98K cost=211
 |  |  in pipelines: 97(GETNEXT)
 |  |
 |  F06:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=20.76MB mem-reservation=3.94MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+|  max-parallelism=6 segment-costs=[448725, 1488000, 211] cpu-comparison-result=43 [max(6 (self) vs 43 (sum children))]
 |  29:AGGREGATE [STREAMING]
-|  |  group by: tpcds_parquet.item.i_item_sk
+|  |  group by: tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=91 row-size=8B cardinality=17.98K cost=148800
 |  |  in pipelines: 97(GETNEXT)
@@ -3908,7 +3900,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  F15:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  03:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  03:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
@@ -3926,21 +3918,21 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  in pipelines: 97(GETNEXT), 106(OPEN)
 |  |
 |  |--F82:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=2.85MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=6 [max(6 (self) vs 6 (sum children))]
+|  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=25 plan-id=26 cohort-id=08
 |  |  |  build expressions: iws.i_brand_id, iws.i_category_id, iws.i_class_id
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=446400
 |  |  |
 |  |  107:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  mem-estimate=935.88KB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=677.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=89 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 106(GETNEXT)
 |  |  |
-|  |  F14:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=2 instances=4 (adjusted from 2)
-|  |  Per-Instance Resources: mem-estimate=10.88MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=4 segment-costs=[448725, 2325] cpu-comparison-result=6 [max(4 (self) vs 6 (sum children))]
+|  |  F14:PLAN FRAGMENT [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  106:AGGREGATE [FINALIZE]
 |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -3948,16 +3940,16 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  in pipelines: 106(GETNEXT), 15(OPEN)
 |  |  |
 |  |  105:EXCHANGE [HASH(iws.i_brand_id,iws.i_class_id,iws.i_category_id)]
-|  |  |  mem-estimate=903.88KB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=89 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 15(GETNEXT)
 |  |  |
-|  |  F11:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  Per-Instance Resources: mem-estimate=26.25MB mem-reservation=9.00MB thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[3705351, 2325] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+|  |  F11:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=3.12MB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[94805352, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  22:AGGREGATE [STREAMING]
 |  |  |  group by: iws.i_brand_id, iws.i_class_id, iws.i_category_id
-|  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
+|  |  |  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
 |  |  |  tuple-ids=89 row-size=12B cardinality=148.80K cost=2158152
 |  |  |  in pipelines: 15(GETNEXT)
 |  |  |
@@ -3969,24 +3961,23 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  tuple-ids=13,14,15 row-size=40B cardinality=719.38K cost=719384
 |  |  |  in pipelines: 15(GETNEXT), 17(OPEN)
 |  |  |
-|  |  |--F83:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=2 segment-costs=[7477]
+|  |  |--F83:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=26 plan-id=27 cohort-id=09
 |  |  |  |  build expressions: d3.d_date_sk
-|  |  |  |  runtime filters: RF035[min_max] <- d3.d_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  104:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=15 row-size=8B cardinality=7.30K cost=172
+|  |  |  |  tuple-ids=15 row-size=8B cardinality=7.30K cost=258
 |  |  |  |  in pipelines: 17(GETNEXT)
 |  |  |  |
 |  |  |  F13:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  17:SCAN HDFS [tpcds_parquet.date_dim d3, RANDOM]
+|  |  |  17:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d3, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d3.d_year <= CAST(2001 AS INT), d3.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -4007,24 +3998,24 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  tuple-ids=13,14 row-size=32B cardinality=719.38K cost=719384
 |  |  |  in pipelines: 15(GETNEXT), 16(OPEN)
 |  |  |
-|  |  |--F84:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=2 segment-costs=[18844]
+|  |  |--F84:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=27 plan-id=28 cohort-id=09
 |  |  |  |  build expressions: iws.i_item_sk
 |  |  |  |  runtime filters: RF037[min_max] <- iws.i_item_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |
 |  |  |  103:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=14 row-size=20B cardinality=18.00K cost=844
+|  |  |  |  tuple-ids=14 row-size=20B cardinality=18.00K cost=1266
 |  |  |  |  in pipelines: 16(GETNEXT)
 |  |  |  |
 |  |  |  F12:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  16:SCAN HDFS [tpcds_parquet.item iws, RANDOM]
+|  |  |  16:SCAN HDFS [tpcds_partitioned_parquet_snap.item iws, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -4034,15 +4025,16 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |     tuple-ids=14 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 16(GETNEXT)
 |  |  |
-|  |  15:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |     runtime filters: RF035[min_max] -> ws_sold_date_sk, RF037[min_max] -> ws_item_sk
+|  |  15:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |     runtime filters: RF037[min_max] -> ws_item_sk
 |  |     stored statistics:
-|  |       table: rows=719.38K size=45.09MB
+|  |       table: rows=719.38K size=84.20MB
+|  |       partitions: 1824/1824 rows=719.38K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=13 row-size=12B cardinality=719.38K cost=108431
+|  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=13 row-size=12B cardinality=719.38K cost=91208432
 |  |     in pipelines: 15(GETNEXT)
 |  |
 |  21:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
@@ -4054,7 +4046,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |
 |  |--F85:PLAN FRAGMENT [HASH(iss.i_brand_id,iss.i_class_id,iss.i_category_id)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=2.60MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  |  max-parallelism=6 segment-costs=[448725] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=28 plan-id=29 cohort-id=08
 |  |  |  build expressions: ics.i_brand_id, ics.i_category_id, ics.i_class_id
@@ -4065,9 +4057,9 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  tuple-ids=88 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 101(GETNEXT)
 |  |  |
-|  |  F10:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 3)
-|  |  Per-Instance Resources: mem-estimate=10.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  |  F10:PLAN FRAGMENT [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=10.76MB mem-reservation=1.94MB thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[448725, 2325] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  101:AGGREGATE [FINALIZE]
 |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -4075,13 +4067,13 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  in pipelines: 101(GETNEXT), 10(OPEN)
 |  |  |
 |  |  100:EXCHANGE [HASH(ics.i_brand_id,ics.i_class_id,ics.i_category_id)]
-|  |  |  mem-estimate=629.25KB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=773.25KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=88 row-size=12B cardinality=148.80K cost=2325
 |  |  |  in pipelines: 10(GETNEXT)
 |  |  |
-|  |  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=9.00MB thread-reservation=1
-|  |  max-parallelism=3 segment-costs=[7374634, 2325] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+|  |  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=26.38MB mem-reservation=5.12MB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[98774636, 2325] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  |  20:AGGREGATE [STREAMING]
 |  |  |  group by: ics.i_brand_id, ics.i_class_id, ics.i_category_id
 |  |  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
@@ -4097,13 +4089,12 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  in pipelines: 10(GETNEXT), 12(OPEN)
 |  |  |
 |  |  |--F86:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=2.00MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  Per-Instance Resources: mem-estimate=7.82MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[7563]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=29 plan-id=30 cohort-id=10
 |  |  |  |  build expressions: d2.d_date_sk
-|  |  |  |  runtime filters: RF031[min_max] <- d2.d_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |  |
 |  |  |  99:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=69.07KB mem-reservation=0B thread-reservation=0
@@ -4113,7 +4104,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196755]
-|  |  |  12:SCAN HDFS [tpcds_parquet.date_dim d2, RANDOM]
+|  |  |  12:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d2, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d2.d_year <= CAST(2001 AS INT), d2.d_year >= CAST(1999 AS INT)
 |  |  |     stored statistics:
@@ -4135,13 +4126,13 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  in pipelines: 10(GETNEXT), 11(OPEN)
 |  |  |
 |  |  |--F87:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=2.30MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  |  Per-Instance Resources: mem-estimate=8.12MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[19266]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=30 plan-id=31 cohort-id=10
 |  |  |  |  build expressions: ics.i_item_sk
 |  |  |  |  runtime filters: RF033[min_max] <- ics.i_item_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |  |
 |  |  |  98:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=375.56KB mem-reservation=0B thread-reservation=0
@@ -4151,7 +4142,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[50774]
-|  |  |  11:SCAN HDFS [tpcds_parquet.item ics, RANDOM]
+|  |  |  11:SCAN HDFS [tpcds_partitioned_parquet_snap.item ics, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -4161,15 +4152,16 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  |     tuple-ids=10 row-size=20B cardinality=18.00K cost=50352
 |  |  |     in pipelines: 11(GETNEXT)
 |  |  |
-|  |  10:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=3 size=96.62MB
-|  |     runtime filters: RF031[min_max] -> cs_sold_date_sk, RF033[min_max] -> cs_item_sk
+|  |  10:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|  |     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|  |     runtime filters: RF033[min_max] -> cs_item_sk
 |  |     stored statistics:
-|  |       table: rows=1.44M size=96.62MB
+|  |       table: rows=1.44M size=151.13MB
+|  |       partitions: 1831/1831 rows=1.44M
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=9 row-size=12B cardinality=1.44M cost=166894
+|  |     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=9 row-size=12B cardinality=1.44M cost=91566896
 |  |     in pipelines: 10(GETNEXT)
 |  |
 |  97:AGGREGATE [FINALIZE]
@@ -4216,7 +4208,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  F05:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196755]
-|  |  06:SCAN HDFS [tpcds_parquet.date_dim d1, RANDOM]
+|  |  06:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim d1, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d1.d_year <= CAST(2001 AS INT), d1.d_year >= CAST(1999 AS INT)
 |  |     stored statistics:
@@ -4255,7 +4247,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50774]
-|  |  05:SCAN HDFS [tpcds_parquet.item iss, RANDOM]
+|  |  05:SCAN HDFS [tpcds_partitioned_parquet_snap.item iss, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     runtime filters: RF017[min_max] -> iss.i_brand_id, RF018[min_max] -> iss.i_category_id, RF019[min_max] -> iss.i_class_id, RF014[bloom] -> iss.i_brand_id, RF015[bloom] -> iss.i_category_id
 |  |     stored statistics:
@@ -4266,11 +4258,11 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  |     tuple-ids=5 row-size=20B cardinality=18.00K cost=50352
 |  |     in pipelines: 05(GETNEXT)
 |  |
-|  04:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  04:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     runtime filters: RF029[min_max] -> ss_item_sk
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -4304,7 +4296,7 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[51428]
-|  02:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  02:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     runtime filters: RF007[min_max] -> d_week_seq, RF006[bloom] -> d_week_seq
 |     stored statistics:
@@ -4341,9 +4333,9 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |  Per-Host Shared Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=0 runtime-filters-memory=4.00MB
 |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=256.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50774]
-|  01:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  01:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |     HDFS partitions=1/1 files=1 size=1.73MB
-|     runtime filters: RF003[min_max] -> tpcds_parquet.item.i_brand_id, RF004[min_max] -> tpcds_parquet.item.i_category_id, RF005[min_max] -> tpcds_parquet.item.i_class_id, RF009[min_max] -> tpcds_parquet.item.i_item_sk, RF000[bloom] -> tpcds_parquet.item.i_brand_id, RF001[bloom] -> tpcds_parquet.item.i_category_id, RF002[bloom] -> tpcds_parquet.item.i_class_id, RF008[bloom] -> tpcds_parquet.item.i_item_sk
+|     runtime filters: RF003[min_max] -> tpcds_partitioned_parquet_snap.item.i_brand_id, RF004[min_max] -> tpcds_partitioned_parquet_snap.item.i_category_id, RF005[min_max] -> tpcds_partitioned_parquet_snap.item.i_class_id, RF009[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk, RF000[bloom] -> tpcds_partitioned_parquet_snap.item.i_brand_id, RF001[bloom] -> tpcds_partitioned_parquet_snap.item.i_category_id, RF002[bloom] -> tpcds_partitioned_parquet_snap.item.i_class_id, RF008[bl [...]
 |     stored statistics:
 |       table: rows=18.00K size=1.73MB
 |       columns: all
@@ -4352,11 +4344,11 @@ max-parallelism=12 segment-costs=[102779227, 11] cpu-comparison-result=44 [max(1
 |     tuple-ids=1 row-size=20B cardinality=18.00K cost=50352
 |     in pipelines: 01(GETNEXT)
 |
-00:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-   HDFS partitions=1824/1824 files=1824 size=200.96MB
+00:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=199.36MB
    runtime filters: RF009[min_max] -> ss_item_sk, RF013[min_max] -> ss_item_sk, RF008[bloom] -> ss_item_sk, RF010[bloom] -> ss_sold_date_sk, RF012[bloom] -> ss_item_sk
    stored statistics:
-     table: rows=2.88M size=200.96MB
+     table: rows=2.88M size=199.36MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -4415,11 +4407,11 @@ from
          and ws_bill_customer_sk in (select c_customer_sk from best_ss_customer)) y
  limit 100;
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=627.50MB Threads=81
-Per-Host Resource Estimates: Memory=1.46GB
+Max Per-Host Resource Reservation: Memory=631.88MB Threads=88
+Per-Host Resource Estimates: Memory=1.58GB
 F31:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=32.00KB mem-reservation=0B thread-reservation=1
-|  max-parallelism=1 segment-costs=[2, 0] cpu-comparison-result=79 [max(1 (self) vs 79 (sum children))]
+|  max-parallelism=1 segment-costs=[2, 0] cpu-comparison-result=102 [max(1 (self) vs 102 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: sum(sales)
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0 cost=0
@@ -4438,67 +4430,58 @@ PLAN-ROOT SINK
 |
 F30:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Instance Resources: mem-estimate=10.93MB mem-reservation=1.94MB thread-reservation=1
-max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-result=79 [max(12 (self) vs 79 (sum children))]
+max-parallelism=12 segment-costs=[202344, 202344, 582875, 1] cpu-comparison-result=102 [max(12 (self) vs 102 (sum children))]
 49:AGGREGATE
 |  output: sum(sales)
 |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
-|  tuple-ids=46 row-size=16B cardinality=1 cost=128163
+|  tuple-ids=46 row-size=16B cardinality=1 cost=127625
 |  in pipelines: 49(GETNEXT), 52(OPEN), 71(OPEN)
 |
 00:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=44 row-size=8B cardinality=128.16K cost=256326
+|  tuple-ids=44 row-size=8B cardinality=127.62K cost=255250
 |  in pipelines: 52(GETNEXT), 71(GETNEXT)
 |
 |--48:HASH JOIN [RIGHT SEMI JOIN, PARTITIONED]
 |  |  hash-table-id=08
 |  |  hash predicates: c_customer_sk = ws_bill_customer_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=22,23 row-size=36B cardinality=42.85K cost=100000
+|  |  tuple-ids=22,23 row-size=36B cardinality=42.60K cost=100000
 |  |  in pipelines: 71(GETNEXT), 25(OPEN)
 |  |
 |  |--F40:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=3.76MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=12 segment-costs=[44696] cpu-comparison-result=15 [max(14 (self) vs 15 (sum children))]
+|  |  |  Per-Instance Resources: mem-estimate=3.68MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=12 segment-costs=[44427] cpu-comparison-result=30 [max(30 (self) vs 16 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=08 plan-id=09 cohort-id=01
 |  |  |  build expressions: ws_bill_customer_sk
 |  |  |  runtime filters: RF016[bloom] <- ws_bill_customer_sk, RF017[min_max] <- ws_bill_customer_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=42854
+|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=42596
 |  |  |
 |  |  87:EXCHANGE [HASH(ws_bill_customer_sk)]
-|  |  |  mem-estimate=841.29KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.85K cost=1842
+|  |  |  mem-estimate=763.17KB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.60K cost=1831
 |  |  |  in pipelines: 25(GETNEXT)
 |  |  |
-|  |  F23:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  |  Per-Instance Resources: mem-estimate=18.06MB mem-reservation=8.00MB thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[880941]
-|  |  47:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
+|  |  F29:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=3.07MB mem-reservation=0B thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[46258]
+|  |  47:HASH JOIN [LEFT SEMI JOIN, PARTITIONED]
 |  |  |  hash-table-id=09
 |  |  |  hash predicates: ws_item_sk = i_item_sk
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.85K cost=42854
+|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.60K cost=42596
 |  |  |  in pipelines: 25(GETNEXT), 85(OPEN)
 |  |  |
-|  |  |--F41:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.14MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  |  max-parallelism=2 segment-costs=[18397] cpu-comparison-result=12 [max(2 (self) vs 12 (sum children))]
+|  |  |--F41:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  |  Per-Instance Resources: mem-estimate=11.94MB mem-reservation=3.88MB thread-reservation=1
+|  |  |  |  max-parallelism=6 segment-costs=[18186, 17975] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=09 plan-id=10 cohort-id=05
 |  |  |  |  build expressions: i_item_sk
 |  |  |  |  runtime filters: RF025[min_max] <- i_item_sk
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |  |  |
-|  |  |  86:EXCHANGE [BROADCAST]
-|  |  |  |  mem-estimate=212.43KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=68 row-size=8B cardinality=17.98K cost=422
-|  |  |  |  in pipelines: 85(GETNEXT)
-|  |  |  |
-|  |  |  F29:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=10.12MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[18186, 211] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  85:AGGREGATE [FINALIZE]
 |  |  |  |  group by: i_item_sk
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
@@ -4568,7 +4551,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  |  F27:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.49MB mem-reservation=2.00MB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[54306]
-|  |  |  |  29:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  |  |  29:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=18.00K size=1.73MB
@@ -4603,7 +4586,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  |  F26:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.13MB mem-reservation=2.00MB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[125240]
-|  |  |  |  28:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  28:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |  |  |     stored statistics:
@@ -4616,11 +4599,11 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  |     tuple-ids=25 row-size=30B cardinality=1.49K cost=125190
 |  |  |  |     in pipelines: 28(GETNEXT)
 |  |  |  |
-|  |  |  27:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  |  27:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |  |     runtime filters: RF029[min_max] -> ss_item_sk, RF030[bloom] -> ss_sold_date_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=2.88M size=200.96MB
+|  |  |       table: rows=2.88M size=199.36MB
 |  |  |       partitions: 1824/1824 rows=2.88M
 |  |  |       columns: all
 |  |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -4628,32 +4611,41 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |     tuple-ids=24 row-size=12B cardinality=2.88M cost=91233752
 |  |  |     in pipelines: 27(GETNEXT)
 |  |  |
+|  |  86:EXCHANGE [HASH(ws_item_sk)]
+|  |  |  mem-estimate=1.00MB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.60K cost=1831
+|  |  |  in pipelines: 25(GETNEXT)
+|  |  |
+|  |  F23:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
+|  |  Per-Instance Resources: mem-estimate=17.03MB mem-reservation=128.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[91938079]
 |  |  45:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  |  hash-table-id=12
 |  |  |  hash predicates: ws_sold_date_sk = d_date_sk
 |  |  |  fk/pk conjuncts: ws_sold_date_sk = d_date_sk
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.85K cost=719384
+|  |  |  tuple-ids=22,23 row-size=36B cardinality=42.60K cost=719384
 |  |  |  in pipelines: 25(GETNEXT), 26(OPEN)
 |  |  |
-|  |  |--F44:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  |  max-parallelism=2 segment-costs=[112]
+|  |  |--F44:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=12 plan-id=13 cohort-id=05
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  runtime filters: RF026[bloom] <- d_date_sk, RF027[min_max] <- d_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  |  runtime filters: RF026[bloom] <- d_date_sk
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |  |
 |  |  |  79:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=23 row-size=12B cardinality=108 cost=4
+|  |  |  |  tuple-ids=23 row-size=12B cardinality=108 cost=6
 |  |  |  |  in pipelines: 26(GETNEXT)
 |  |  |  |
 |  |  |  F24:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196957]
-|  |  |  26:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  26:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year = CAST(2000 AS INT), d_moy = CAST(2 AS INT)
 |  |  |     stored statistics:
@@ -4666,15 +4658,16 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |     tuple-ids=23 row-size=12B cardinality=108 cost=196955
 |  |  |     in pipelines: 26(GETNEXT)
 |  |  |
-|  |  25:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |     runtime filters: RF027[min_max] -> ws_sold_date_sk, RF025[min_max] -> ws_item_sk, RF026[bloom] -> ws_sold_date_sk
+|  |  25:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |     runtime filters: RF025[min_max] -> ws_item_sk, RF026[bloom] -> ws_sold_date_sk
 |  |     stored statistics:
-|  |       table: rows=719.38K size=45.09MB
+|  |       table: rows=719.38K size=84.20MB
+|  |       partitions: 1824/1824 rows=719.38K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|  |     tuple-ids=22 row-size=24B cardinality=719.38K cost=116861
+|  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=22 row-size=24B cardinality=719.38K cost=91216864
 |  |     in pipelines: 25(GETNEXT)
 |  |
 |  44:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
@@ -4767,7 +4760,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  F20:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[51173]
-|  |  |  38:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  |  38:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |  |     stored statistics:
 |  |  |       table: rows=100.00K size=5.49MB
@@ -4802,7 +4795,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  F19:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[123638]
-|  |  |  39:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  39:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |  |     stored statistics:
@@ -4815,11 +4808,11 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |     tuple-ids=36 row-size=8B cardinality=1.49K cost=123620
 |  |  |     in pipelines: 39(GETNEXT)
 |  |  |
-|  |  37:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  37:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     runtime filters: RF021[min_max] -> ss_customer_sk, RF022[bloom] -> ss_sold_date_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -4876,9 +4869,9 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[51173]
-|  |  34:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  34:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
-|  |     runtime filters: RF017[min_max] -> tpcds_parquet.customer.c_customer_sk, RF016[bloom] -> tpcds_parquet.customer.c_customer_sk
+|  |     runtime filters: RF017[min_max] -> tpcds_partitioned_parquet_snap.customer.c_customer_sk, RF016[bloom] -> tpcds_partitioned_parquet_snap.customer.c_customer_sk
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
 |  |       columns: all
@@ -4887,11 +4880,11 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |     tuple-ids=31 row-size=4B cardinality=100.00K cost=50391
 |  |     in pipelines: 34(GETNEXT)
 |  |
-|  33:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
-|     runtime filters: RF017[min_max] -> tpcds_parquet.store_sales.ss_customer_sk, RF019[min_max] -> ss_customer_sk, RF016[bloom] -> tpcds_parquet.store_sales.ss_customer_sk
+|  33:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
+|     runtime filters: RF017[min_max] -> tpcds_partitioned_parquet_snap.store_sales.ss_customer_sk, RF019[min_max] -> ss_customer_sk, RF016[bloom] -> tpcds_partitioned_parquet_snap.store_sales.ss_customer_sk
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -4903,42 +4896,42 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  hash-table-id=00
 |  hash predicates: c_customer_sk = cs_bill_customer_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=0,1 row-size=36B cardinality=85.31K cost=100000
+|  tuple-ids=0,1 row-size=36B cardinality=85.03K cost=100000
 |  in pipelines: 52(GETNEXT), 01(OPEN)
 |
 |--F32:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=4.04MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  max-parallelism=12 segment-costs=[88975] cpu-comparison-result=16 [max(15 (self) vs 16 (sum children))]
+|  |  Per-Instance Resources: mem-estimate=4.43MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  max-parallelism=12 segment-costs=[88683] cpu-comparison-result=24 [max(24 (self) vs 16 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: cs_bill_customer_sk
 |  |  runtime filters: RF000[bloom] <- cs_bill_customer_sk, RF001[min_max] <- cs_bill_customer_sk
-|  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=85309
+|  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=85029
 |  |
 |  68:EXCHANGE [HASH(cs_bill_customer_sk)]
-|  |  mem-estimate=1.11MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0,1 row-size=36B cardinality=85.31K cost=3666
+|  |  mem-estimate=1.49MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=0,1 row-size=36B cardinality=85.03K cost=3654
 |  |  in pipelines: 01(GETNEXT)
 |  |
-|  F08:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  F08:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  Per-Instance Resources: mem-estimate=18.06MB mem-reservation=8.00MB thread-reservation=1
-|  max-parallelism=3 segment-costs=[1714310]
+|  Per-Instance Resources: mem-estimate=18.06MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[93114023]
 |  23:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
 |  |  hash-table-id=01
 |  |  hash predicates: cs_item_sk = i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=0,1 row-size=36B cardinality=85.31K cost=85309
+|  |  tuple-ids=0,1 row-size=36B cardinality=85.03K cost=85029
 |  |  in pipelines: 01(GETNEXT), 66(OPEN)
 |  |
 |  |--F33:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.14MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  Per-Instance Resources: mem-estimate=7.96MB mem-reservation=7.75MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[18608] cpu-comparison-result=12 [max(3 (self) vs 12 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=02
 |  |  |  build expressions: i_item_sk
 |  |  |  runtime filters: RF009[min_max] <- i_item_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=17975
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=17975
 |  |  |
 |  |  67:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=212.43KB mem-reservation=0B thread-reservation=0
@@ -5017,7 +5010,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  F12:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.49MB mem-reservation=2.00MB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[54306]
-|  |  |  05:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  |  05:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |  |     stored statistics:
 |  |  |       table: rows=18.00K size=1.73MB
@@ -5052,7 +5045,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |  F11:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.13MB mem-reservation=2.00MB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[125240]
-|  |  |  04:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  04:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |  |     stored statistics:
@@ -5065,11 +5058,11 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  |     tuple-ids=3 row-size=30B cardinality=1.49K cost=125190
 |  |  |     in pipelines: 04(GETNEXT)
 |  |  |
-|  |  03:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  03:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     runtime filters: RF013[min_max] -> ss_item_sk, RF014[bloom] -> ss_sold_date_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -5082,17 +5075,17 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  hash predicates: cs_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=0,1 row-size=36B cardinality=85.31K cost=1441548
+|  |  tuple-ids=0,1 row-size=36B cardinality=85.03K cost=1441548
 |  |  in pipelines: 01(GETNEXT), 02(OPEN)
 |  |
 |  |--F36:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  JOIN BUILD
 |  |  |  join-table-id=04 plan-id=05 cohort-id=02
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF010[bloom] <- d_date_sk, RF011[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  runtime filters: RF010[bloom] <- d_date_sk
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |
 |  |  60:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
@@ -5102,7 +5095,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196957]
-|  |  02:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  02:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(2000 AS INT), d_moy = CAST(2 AS INT)
 |  |     stored statistics:
@@ -5115,15 +5108,16 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |     tuple-ids=1 row-size=12B cardinality=108 cost=196955
 |  |     in pipelines: 02(GETNEXT)
 |  |
-|  01:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF011[min_max] -> cs_sold_date_sk, RF009[min_max] -> cs_item_sk, RF010[bloom] -> cs_sold_date_sk
+|  01:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|     runtime filters: RF009[min_max] -> cs_item_sk, RF010[bloom] -> cs_sold_date_sk
 |     stored statistics:
-|       table: rows=1.44M size=96.62MB
+|       table: rows=1.44M size=151.13MB
+|       partitions: 1831/1831 rows=1.44M
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|     tuple-ids=0 row-size=24B cardinality=1.44M cost=183787
+|     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=0 row-size=24B cardinality=1.44M cost=91583792
 |     in pipelines: 01(GETNEXT)
 |
 20:NESTED LOOP JOIN [INNER JOIN, BROADCAST]
@@ -5216,7 +5210,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  F05:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[51173]
-|  |  14:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  14:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
@@ -5251,7 +5245,7 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |  F04:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[123638]
-|  |  15:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  15:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |     stored statistics:
@@ -5264,11 +5258,11 @@ max-parallelism=12 segment-costs=[202344, 202344, 584489, 1] cpu-comparison-resu
 |  |     tuple-ids=14 row-size=8B cardinality=1.49K cost=123620
 |  |     in pipelines: 15(GETNEXT)
 |  |
-|  13:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  13:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     runtime filters: RF005[min_max] -> ss_customer_sk, RF006[bloom] -> ss_sold_date_sk, RF004[bloom] -> ss_customer_sk
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -5325,9 +5319,9 @@ max-parallelism=12 segment-costs=[99874964, 2344] cpu-comparison-result=12 [max(
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[51173]
-|  10:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  10:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |     HDFS partitions=1/1 files=1 size=5.49MB
-|     runtime filters: RF001[min_max] -> tpcds_parquet.customer.c_customer_sk, RF000[bloom] -> tpcds_parquet.customer.c_customer_sk
+|     runtime filters: RF001[min_max] -> tpcds_partitioned_parquet_snap.customer.c_customer_sk, RF000[bloom] -> tpcds_partitioned_parquet_snap.customer.c_customer_sk
 |     stored statistics:
 |       table: rows=100.00K size=5.49MB
 |       columns: all
@@ -5336,11 +5330,11 @@ max-parallelism=12 segment-costs=[99874964, 2344] cpu-comparison-result=12 [max(
 |     tuple-ids=9 row-size=4B cardinality=100.00K cost=50391
 |     in pipelines: 10(GETNEXT)
 |
-09:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-   HDFS partitions=1824/1824 files=1824 size=200.96MB
-   runtime filters: RF001[min_max] -> tpcds_parquet.store_sales.ss_customer_sk, RF003[min_max] -> ss_customer_sk, RF000[bloom] -> tpcds_parquet.store_sales.ss_customer_sk, RF002[bloom] -> ss_customer_sk
+09:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=199.36MB
+   runtime filters: RF001[min_max] -> tpcds_partitioned_parquet_snap.store_sales.ss_customer_sk, RF003[min_max] -> ss_customer_sk, RF000[bloom] -> tpcds_partitioned_parquet_snap.store_sales.ss_customer_sk, RF002[bloom] -> ss_customer_sk
    stored statistics:
-     table: rows=2.88M size=200.96MB
+     table: rows=2.88M size=199.36MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -5434,110 +5428,110 @@ ORDER BY c_last_name,
          sales
 LIMIT 100;
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=661.38MB Threads=89
-Per-Host Resource Estimates: Memory=1.52GB
-F37:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+Max Per-Host Resource Reservation: Memory=663.88MB Threads=93
+Per-Host Resource Estimates: Memory=1.63GB
+F35: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=[306] cpu-comparison-result=75 [max(1 (self) vs 75 (sum children))]
+|  max-parallelism=1 segment-costs=[306] cpu-comparison-result=78 [max(1 (self) vs 78 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: c_last_name, c_first_name, sales
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=300
 |
-98:MERGING-EXCHANGE [UNPARTITIONED]
+96:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: c_last_name ASC, c_first_name ASC, sales ASC
 |  limit: 100
 |  mem-estimate=34.49KB mem-reservation=0B thread-reservation=0
 |  tuple-ids=44 row-size=52B cardinality=100 cost=6
 |  in pipelines: 53(GETNEXT)
 |
-F36:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
+F34:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=10.51MB mem-reservation=1.94MB thread-reservation=1
-max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75 [max(6 (self) vs 75 (sum children))]
+max-parallelism=6 segment-costs=[32050, 29227, 300, 6] cpu-comparison-result=78 [max(6 (self) vs 78 (sum children))]
 53:TOP-N [LIMIT=100]
 |  order by: c_last_name ASC, c_first_name ASC, sales ASC
 |  mem-estimate=5.08KB mem-reservation=0B thread-reservation=0
 |  tuple-ids=44 row-size=52B cardinality=100 cost=300
-|  in pipelines: 53(GETNEXT), 75(OPEN), 97(OPEN)
+|  in pipelines: 53(GETNEXT), 74(OPEN), 95(OPEN)
 |
 00:UNION
 |  pass-through-operands: all
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=42 row-size=52B cardinality=20.15K cost=0
-|  in pipelines: 75(GETNEXT), 97(GETNEXT)
+|  tuple-ids=42 row-size=52B cardinality=20.06K cost=0
+|  in pipelines: 74(GETNEXT), 95(GETNEXT)
 |
-|--97:AGGREGATE [FINALIZE]
+|--95:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ws_quantity * ws_list_price)
 |  |  group by: c_last_name, c_first_name
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=41 row-size=52B cardinality=9.63K cost=28878
-|  |  in pipelines: 97(GETNEXT), 79(OPEN)
+|  |  tuple-ids=41 row-size=52B cardinality=9.57K cost=28704
+|  |  in pipelines: 95(GETNEXT), 78(OPEN)
 |  |
-|  96:EXCHANGE [HASH(c_last_name,c_first_name)]
-|  |  mem-estimate=498.62KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=41 row-size=52B cardinality=9.63K cost=527
-|  |  in pipelines: 79(GETNEXT)
+|  94:EXCHANGE [HASH(c_last_name,c_first_name)]
+|  |  mem-estimate=497.64KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=41 row-size=52B cardinality=9.57K cost=523
+|  |  in pipelines: 78(GETNEXT)
 |  |
-|  F34:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  F32:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=15.37MB mem-reservation=2.00MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[276749, 527] cpu-comparison-result=36 [max(6 (self) vs 36 (sum children))]
+|  max-parallelism=6 segment-costs=[276575, 523] cpu-comparison-result=39 [max(6 (self) vs 39 (sum children))]
 |  52:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(ws_quantity AS DECIMAL(10,0)) * ws_list_price)
 |  |  group by: c_last_name, c_first_name
 |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=41 row-size=52B cardinality=9.63K cost=28878
-|  |  in pipelines: 79(GETNEXT)
+|  |  tuple-ids=41 row-size=52B cardinality=9.57K cost=28704
+|  |  in pipelines: 78(GETNEXT)
 |  |
 |  51:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=10
 |  |  hash predicates: i_item_sk = ws_item_sk
 |  |  fk/pk conjuncts: i_item_sk = ws_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=28,21,23,39,22 row-size=162B cardinality=9.63K cost=235454
-|  |  in pipelines: 79(GETNEXT), 27(OPEN)
+|  |  tuple-ids=28,21,23,39,22 row-size=162B cardinality=9.57K cost=235454
+|  |  in pipelines: 78(GETNEXT), 27(OPEN)
 |  |
-|  |--F48:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=3.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=6 segment-costs=[10829] cpu-comparison-result=24 [max(12 (self) vs 24 (sum children))]
+|  |--F46:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=4.03MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=6 segment-costs=[10764] cpu-comparison-result=27 [max(24 (self) vs 27 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=10 plan-id=11 cohort-id=05
 |  |  |  build expressions: ws_item_sk
 |  |  |  runtime filters: RF018[bloom] <- ws_item_sk, RF019[min_max] <- ws_item_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=9626
+|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=9568
 |  |  |
-|  |  95:EXCHANGE [HASH(ws_item_sk)]
-|  |  |  mem-estimate=1.01MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=21,23,39,22 row-size=112B cardinality=9.63K cost=1203
+|  |  93:EXCHANGE [HASH(ws_item_sk)]
+|  |  |  mem-estimate=1.09MB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=21,23,39,22 row-size=112B cardinality=9.57K cost=1196
 |  |  |  in pipelines: 27(GETNEXT)
 |  |  |
-|  |  F33:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=2 instances=4 (adjusted from 2)
-|  |  Per-Instance Resources: mem-estimate=3.49MB mem-reservation=0B thread-reservation=1
-|  |  max-parallelism=4 segment-costs=[11619]
+|  |  F30:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=4.00MB mem-reservation=0B thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[55191]
 |  |  50:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  |  hash-table-id=11
 |  |  |  hash predicates: ws_bill_customer_sk = customer.c_customer_sk
 |  |  |  fk/pk conjuncts: ws_bill_customer_sk = customer.c_customer_sk
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=128.00KB thread-reservation=0
-|  |  |  tuple-ids=21,23,39,22 row-size=112B cardinality=9.63K cost=9626
+|  |  |  tuple-ids=21,23,39,22 row-size=112B cardinality=9.57K cost=9568
 |  |  |  in pipelines: 27(GETNEXT), 28(OPEN)
 |  |  |
-|  |  |--F49:PLAN FRAGMENT [HASH(ws_bill_customer_sk)] hosts=2 instances=4 (adjusted from 2)
+|  |  |--F47:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=6.73MB mem-reservation=2.88MB thread-reservation=1
-|  |  |  |  max-parallelism=4 segment-costs=[104294]
+|  |  |  |  max-parallelism=6 segment-costs=[104294]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=11 plan-id=12 cohort-id=06
 |  |  |  |  build expressions: customer.c_customer_sk
 |  |  |  |  runtime filters: RF025[min_max] <- customer.c_customer_sk
 |  |  |  |  mem-estimate=2.88MB mem-reservation=2.88MB spill-buffer=128.00KB thread-reservation=0 cost=100000
 |  |  |  |
-|  |  |  93:EXCHANGE [HASH(customer.c_customer_sk)]
+|  |  |  91:EXCHANGE [HASH(customer.c_customer_sk)]
 |  |  |  |  mem-estimate=3.85MB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=22 row-size=40B cardinality=100.00K cost=4294
 |  |  |  |  in pipelines: 28(GETNEXT)
 |  |  |  |
-|  |  |  F32:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  |  Per-Instance Resources: mem-estimate=16.69MB mem-reservation=1.00MB thread-reservation=1
+|  |  |  F31:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  Per-Instance Resources: mem-estimate=17.03MB mem-reservation=1.00MB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[58197]
-|  |  |  28:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  |  28:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |  |     stored statistics:
 |  |  |       table: rows=100.00K size=5.49MB
@@ -5547,54 +5541,37 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |     tuple-ids=22 row-size=40B cardinality=100.00K cost=53903
 |  |  |     in pipelines: 28(GETNEXT)
 |  |  |
-|  |  92:EXCHANGE [HASH(ws_bill_customer_sk)]
-|  |  |  mem-estimate=506.41KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=21,23,39 row-size=72B cardinality=9.63K cost=790
-|  |  |  in pipelines: 27(GETNEXT)
-|  |  |
-|  |  F22:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
-|  |  Per-Instance Resources: mem-estimate=17.31MB mem-reservation=8.00MB thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[879889]
-|  |  49:HASH JOIN [INNER JOIN, BROADCAST]
+|  |  49:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  |  hash-table-id=12
 |  |  |  hash predicates: ws_bill_customer_sk = c_customer_sk
 |  |  |  fk/pk conjuncts: ws_bill_customer_sk = c_customer_sk
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  |  tuple-ids=21,23,39 row-size=72B cardinality=9.63K cost=42854
-|  |  |  in pipelines: 27(GETNEXT), 90(OPEN)
+|  |  |  tuple-ids=21,23,39 row-size=72B cardinality=9.57K cost=42596
+|  |  |  in pipelines: 27(GETNEXT), 89(OPEN)
 |  |  |
-|  |  |--F50:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=3.52MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  |  max-parallelism=2 segment-costs=[10782] cpu-comparison-result=16 [max(2 (self) vs 16 (sum children))]
+|  |  |--F48:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  |  Per-Instance Resources: mem-estimate=12.94MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  |  max-parallelism=6 segment-costs=[303907, 10000] cpu-comparison-result=16 [max(6 (self) vs 16 (sum children))]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=12 plan-id=13 cohort-id=06
 |  |  |  |  build expressions: c_customer_sk
 |  |  |  |  runtime filters: RF026[bloom] <- c_customer_sk, RF027[min_max] <- c_customer_sk
 |  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=10000
 |  |  |  |
-|  |  |  91:EXCHANGE [BROADCAST]
-|  |  |  |  mem-estimate=591.56KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=39 row-size=36B cardinality=10.00K cost=782
-|  |  |  |  in pipelines: 90(GETNEXT)
-|  |  |  |
-|  |  |  F31:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=11.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=6 segment-costs=[303907, 391] cpu-comparison-result=16 [max(6 (self) vs 16 (sum children))]
-|  |  |  90:AGGREGATE [FINALIZE]
+|  |  |  89:AGGREGATE [FINALIZE]
 |  |  |  |  output: sum:merge(ss_quantity * ss_sales_price), max:merge(tpcds_cmax)
 |  |  |  |  group by: c_customer_sk
 |  |  |  |  having: sum(ss_quantity * ss_sales_price) > CAST(0.500000 AS DECIMAL(10,6)) * max(tpcds_cmax)
 |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  |  tuple-ids=39 row-size=36B cardinality=10.00K cost=300000
-|  |  |  |  in pipelines: 90(GETNEXT), 36(OPEN)
+|  |  |  |  in pipelines: 89(GETNEXT), 36(OPEN)
 |  |  |  |
-|  |  |  89:EXCHANGE [HASH(c_customer_sk)]
+|  |  |  88:EXCHANGE [HASH(c_customer_sk)]
 |  |  |  |  mem-estimate=1.61MB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=39 row-size=36B cardinality=100.00K cost=3907
 |  |  |  |  in pipelines: 36(GETNEXT)
 |  |  |  |
-|  |  |  F24:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  F23:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=26.94MB mem-reservation=10.00MB thread-reservation=1
 |  |  |  max-parallelism=12 segment-costs=[102755368, 3907] cpu-comparison-result=16 [max(12 (self) vs 16 (sum children))]
 |  |  |  47:AGGREGATE [STREAMING]
@@ -5608,56 +5585,56 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  join table id: 13
 |  |  |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=30,31,37 row-size=32B cardinality=2.88M cost=0
-|  |  |  |  in pipelines: 36(GETNEXT), 87(OPEN)
+|  |  |  |  in pipelines: 36(GETNEXT), 86(OPEN)
 |  |  |  |
-|  |  |  |--F51:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |--F49:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=12 [max(3 (self) vs 12 (sum children))]
 |  |  |  |  JOIN BUILD
 |  |  |  |  |  join-table-id=13 plan-id=14 cohort-id=07
 |  |  |  |  |  mem-estimate=16B mem-reservation=0B thread-reservation=0 cost=0
 |  |  |  |  |
-|  |  |  |  88:EXCHANGE [BROADCAST]
+|  |  |  |  87:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=37 row-size=16B cardinality=1 cost=3
-|  |  |  |  |  in pipelines: 87(GETNEXT)
+|  |  |  |  |  in pipelines: 86(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F30:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+|  |  |  |  F29:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=96.00KB mem-reservation=0B thread-reservation=1
 |  |  |  |  max-parallelism=2 segment-costs=[2, 1] cpu-comparison-result=12 [max(2 (self) vs 12 (sum children))]
-|  |  |  |  87:AGGREGATE [FINALIZE]
+|  |  |  |  86:AGGREGATE [FINALIZE]
 |  |  |  |  |  output: max:merge(csales)
 |  |  |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
 |  |  |  |  |  tuple-ids=37 row-size=16B cardinality=1 cost=1
-|  |  |  |  |  in pipelines: 87(GETNEXT), 44(OPEN)
+|  |  |  |  |  in pipelines: 86(GETNEXT), 44(OPEN)
 |  |  |  |  |
-|  |  |  |  86:EXCHANGE [UNPARTITIONED]
+|  |  |  |  85:EXCHANGE [UNPARTITIONED]
 |  |  |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=37 row-size=16B cardinality=1 cost=1
 |  |  |  |  |  in pipelines: 44(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F29:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  |  F28:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  |  Per-Instance Resources: mem-estimate=10.92MB mem-reservation=1.94MB thread-reservation=1
 |  |  |  |  max-parallelism=6 segment-costs=[202344, 100000, 1] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
 |  |  |  |  44:AGGREGATE
 |  |  |  |  |  output: max(sum(ss_quantity * ss_sales_price))
 |  |  |  |  |  mem-estimate=16.00KB mem-reservation=0B spill-buffer=2.00MB thread-reservation=0
 |  |  |  |  |  tuple-ids=37 row-size=16B cardinality=1 cost=100000
-|  |  |  |  |  in pipelines: 44(GETNEXT), 85(OPEN)
+|  |  |  |  |  in pipelines: 44(GETNEXT), 84(OPEN)
 |  |  |  |  |
-|  |  |  |  85:AGGREGATE [FINALIZE]
+|  |  |  |  84:AGGREGATE [FINALIZE]
 |  |  |  |  |  output: sum:merge(ss_quantity * ss_sales_price)
 |  |  |  |  |  group by: c_customer_sk
 |  |  |  |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  |  |  |  tuple-ids=35 row-size=20B cardinality=100.00K cost=200000
-|  |  |  |  |  in pipelines: 85(GETNEXT), 38(OPEN)
+|  |  |  |  |  in pipelines: 84(GETNEXT), 38(OPEN)
 |  |  |  |  |
-|  |  |  |  84:EXCHANGE [HASH(c_customer_sk)]
+|  |  |  |  83:EXCHANGE [HASH(c_customer_sk)]
 |  |  |  |  |  mem-estimate=939.04KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=35 row-size=20B cardinality=100.00K cost=2344
 |  |  |  |  |  in pipelines: 38(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F26:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  |  F25:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  |  |  Per-Instance Resources: mem-estimate=26.56MB mem-reservation=6.00MB thread-reservation=1
 |  |  |  |  max-parallelism=12 segment-costs=[101189027, 2344] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
@@ -5676,7 +5653,7 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  |  tuple-ids=32,34,33 row-size=28B cardinality=2.35M cost=2354541
 |  |  |  |  |  in pipelines: 38(GETNEXT), 39(OPEN)
 |  |  |  |  |
-|  |  |  |  |--F52:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |--F50:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  |  |  Per-Instance Resources: mem-estimate=19.39MB mem-reservation=19.00MB thread-reservation=1
 |  |  |  |  |  |  max-parallelism=3 segment-costs=[102346]
 |  |  |  |  |  JOIN BUILD
@@ -5685,15 +5662,15 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  |  |  runtime filters: RF033[min_max] <- c_customer_sk
 |  |  |  |  |  |  mem-estimate=19.00MB mem-reservation=19.00MB spill-buffer=256.00KB thread-reservation=0 cost=100000
 |  |  |  |  |  |
-|  |  |  |  |  83:EXCHANGE [BROADCAST]
+|  |  |  |  |  82:EXCHANGE [BROADCAST]
 |  |  |  |  |  |  mem-estimate=398.62KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  |  tuple-ids=33 row-size=4B cardinality=100.00K cost=2346
 |  |  |  |  |  |  in pipelines: 39(GETNEXT)
 |  |  |  |  |  |
-|  |  |  |  |  F28:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  |  F27:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  |  max-parallelism=1 segment-costs=[51173]
-|  |  |  |  |  39:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  |  |  |  39:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |  |  |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |  |  |  |     stored statistics:
 |  |  |  |  |       table: rows=100.00K size=5.49MB
@@ -5711,7 +5688,7 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  |  tuple-ids=32,34 row-size=24B cardinality=2.35M cost=2880404
 |  |  |  |  |  in pipelines: 38(GETNEXT), 40(OPEN)
 |  |  |  |  |
-|  |  |  |  |--F53:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  |--F51:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  |  |  |  max-parallelism=3 segment-costs=[1545]
 |  |  |  |  |  JOIN BUILD
@@ -5720,15 +5697,15 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  |  |  runtime filters: RF034[bloom] <- d_date_sk
 |  |  |  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=1491
 |  |  |  |  |  |
-|  |  |  |  |  82:EXCHANGE [BROADCAST]
+|  |  |  |  |  81:EXCHANGE [BROADCAST]
 |  |  |  |  |  |  mem-estimate=23.65KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  |  tuple-ids=34 row-size=8B cardinality=1.49K cost=54
 |  |  |  |  |  |  in pipelines: 40(GETNEXT)
 |  |  |  |  |  |
-|  |  |  |  |  F27:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  |  F26:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  |  max-parallelism=1 segment-costs=[123638]
-|  |  |  |  |  40:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  |  40:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |  |  |  |     stored statistics:
@@ -5741,11 +5718,11 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  |     tuple-ids=34 row-size=8B cardinality=1.49K cost=123620
 |  |  |  |  |     in pipelines: 40(GETNEXT)
 |  |  |  |  |
-|  |  |  |  38:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |  |  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  |  |  38:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |  |  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |  |  |     runtime filters: RF033[min_max] -> ss_customer_sk, RF034[bloom] -> ss_sold_date_sk
 |  |  |  |     stored statistics:
-|  |  |  |       table: rows=2.88M size=200.96MB
+|  |  |  |       table: rows=2.88M size=199.36MB
 |  |  |  |       partitions: 1824/1824 rows=2.88M
 |  |  |  |       columns: all
 |  |  |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -5761,7 +5738,7 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  tuple-ids=30,31 row-size=16B cardinality=2.88M cost=2880404
 |  |  |  |  in pipelines: 36(GETNEXT), 37(OPEN)
 |  |  |  |
-|  |  |  |--F54:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |--F52:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  |  Per-Instance Resources: mem-estimate=19.39MB mem-reservation=19.00MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[102346]
 |  |  |  |  JOIN BUILD
@@ -5770,17 +5747,17 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |  |  runtime filters: RF031[min_max] <- c_customer_sk
 |  |  |  |  |  mem-estimate=19.00MB mem-reservation=19.00MB spill-buffer=256.00KB thread-reservation=0 cost=100000
 |  |  |  |  |
-|  |  |  |  81:EXCHANGE [BROADCAST]
+|  |  |  |  80:EXCHANGE [BROADCAST]
 |  |  |  |  |  mem-estimate=398.62KB mem-reservation=0B thread-reservation=0
 |  |  |  |  |  tuple-ids=31 row-size=4B cardinality=100.00K cost=2346
 |  |  |  |  |  in pipelines: 37(GETNEXT)
 |  |  |  |  |
-|  |  |  |  F25:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  |  F24:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[51173]
-|  |  |  |  37:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  |  |  37:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=5.49MB
-|  |  |  |     runtime filters: RF025[min_max] -> tpcds_parquet.customer.c_customer_sk
+|  |  |  |     runtime filters: RF025[min_max] -> tpcds_partitioned_parquet_snap.customer.c_customer_sk
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=100.00K size=5.49MB
 |  |  |  |       columns: all
@@ -5789,11 +5766,11 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  |     tuple-ids=31 row-size=4B cardinality=100.00K cost=50391
 |  |  |  |     in pipelines: 37(GETNEXT)
 |  |  |  |
-|  |  |  36:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
-|  |  |     runtime filters: RF025[min_max] -> tpcds_parquet.store_sales.ss_customer_sk, RF031[min_max] -> ss_customer_sk
+|  |  |  36:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
+|  |  |     runtime filters: RF025[min_max] -> tpcds_partitioned_parquet_snap.store_sales.ss_customer_sk, RF031[min_max] -> ss_customer_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=2.88M size=200.96MB
+|  |  |       table: rows=2.88M size=199.36MB
 |  |  |       partitions: 1824/1824 rows=2.88M
 |  |  |       columns: all
 |  |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -5801,32 +5778,41 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |     tuple-ids=30 row-size=12B cardinality=2.88M cost=91233752
 |  |  |     in pipelines: 36(GETNEXT)
 |  |  |
+|  |  90:EXCHANGE [HASH(ws_bill_customer_sk)]
+|  |  |  mem-estimate=1.00MB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=21,23 row-size=36B cardinality=42.60K cost=1831
+|  |  |  in pipelines: 27(GETNEXT)
+|  |  |
+|  |  F21:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  |  Per-Instance Resources: mem-estimate=17.03MB mem-reservation=128.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[91938079]
 |  |  48:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  |  hash-table-id=17
 |  |  |  hash predicates: ws_sold_date_sk = d_date_sk
 |  |  |  fk/pk conjuncts: ws_sold_date_sk = d_date_sk
 |  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  |  tuple-ids=21,23 row-size=36B cardinality=42.85K cost=719384
+|  |  |  tuple-ids=21,23 row-size=36B cardinality=42.60K cost=719384
 |  |  |  in pipelines: 27(GETNEXT), 29(OPEN)
 |  |  |
-|  |  |--F55:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  |  max-parallelism=2 segment-costs=[112]
+|  |  |--F53:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=17 plan-id=18 cohort-id=06
 |  |  |  |  build expressions: d_date_sk
-|  |  |  |  runtime filters: RF028[bloom] <- d_date_sk, RF029[min_max] <- d_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  |  runtime filters: RF028[bloom] <- d_date_sk
+|  |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |  |
-|  |  |  80:EXCHANGE [BROADCAST]
+|  |  |  79:EXCHANGE [BROADCAST]
 |  |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=23 row-size=12B cardinality=108 cost=4
+|  |  |  |  tuple-ids=23 row-size=12B cardinality=108 cost=6
 |  |  |  |  in pipelines: 29(GETNEXT)
 |  |  |  |
-|  |  |  F23:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  |  F22:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[196957]
-|  |  |  29:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  29:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |     predicates: d_year = CAST(2000 AS INT), d_moy = CAST(2 AS INT)
 |  |  |     stored statistics:
@@ -5839,78 +5825,79 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |     tuple-ids=23 row-size=12B cardinality=108 cost=196955
 |  |  |     in pipelines: 29(GETNEXT)
 |  |  |
-|  |  27:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |     runtime filters: RF029[min_max] -> ws_sold_date_sk, RF027[min_max] -> ws_bill_customer_sk, RF025[min_max] -> ws_bill_customer_sk, RF028[bloom] -> ws_sold_date_sk, RF026[bloom] -> ws_bill_customer_sk
+|  |  27:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|  |     runtime filters: RF027[min_max] -> ws_bill_customer_sk, RF025[min_max] -> ws_bill_customer_sk, RF028[bloom] -> ws_sold_date_sk, RF026[bloom] -> ws_bill_customer_sk
 |  |     stored statistics:
-|  |       table: rows=719.38K size=45.09MB
+|  |       table: rows=719.38K size=84.20MB
+|  |       partitions: 1824/1824 rows=719.38K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|  |     tuple-ids=21 row-size=24B cardinality=719.38K cost=116861
+|  |     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=21 row-size=24B cardinality=719.38K cost=91216864
 |  |     in pipelines: 27(GETNEXT)
 |  |
-|  94:EXCHANGE [HASH(i_item_sk)]
+|  92:EXCHANGE [HASH(i_item_sk)]
 |  |  mem-estimate=4.06MB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=28 row-size=50B cardinality=235.45K cost=12417
-|  |  in pipelines: 79(GETNEXT)
+|  |  in pipelines: 78(GETNEXT)
 |  |
-|  F21:PLAN FRAGMENT [HASH(itemdesc,i_item_sk,d_date)] hosts=3 instances=6 (adjusted from 48)
+|  F20:PLAN FRAGMENT [HASH(itemdesc,i_item_sk,d_date)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=44.63MB mem-reservation=34.00MB thread-reservation=1
 |  max-parallelism=6 segment-costs=[9542330, 12417] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
-|  79:AGGREGATE [FINALIZE]
+|  78:AGGREGATE [FINALIZE]
 |  |  output: count:merge(*)
 |  |  group by: itemdesc, i_item_sk, d_date
 |  |  having: count(*) > CAST(4 AS BIGINT)
 |  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=2.00MB thread-reservation=0
 |  |  tuple-ids=28 row-size=50B cardinality=235.45K cost=9418164
-|  |  in pipelines: 79(GETNEXT), 30(OPEN)
+|  |  in pipelines: 78(GETNEXT), 30(OPEN)
 |  |
-|  78:EXCHANGE [HASH(itemdesc,i_item_sk,d_date)]
+|  77:EXCHANGE [HASH(itemdesc,i_item_sk,d_date)]
 |  |  mem-estimate=10.63MB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=28 row-size=50B cardinality=2.35M cost=124166
 |  |  in pipelines: 30(GETNEXT)
 |  |
-|  F18:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  F17:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 |  Per-Instance Resources: mem-estimate=34.27MB mem-reservation=17.50MB thread-reservation=1
 |  max-parallelism=12 segment-costs=[105886861, 124166] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 |  35:AGGREGATE [STREAMING]
 |  |  output: count(*)
-|  |  group by: substring(i_item_desc, CAST(1 AS BIGINT), CAST(30 AS BIGINT)), tpcds_parquet.item.i_item_sk, d_date
+|  |  group by: substring(i_item_desc, CAST(1 AS BIGINT), CAST(30 AS BIGINT)), tpcds_partitioned_parquet_snap.item.i_item_sk, d_date
 |  |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
 |  |  tuple-ids=28 row-size=50B cardinality=2.35M cost=9418164
 |  |  in pipelines: 30(GETNEXT)
 |  |
 |  34:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=18
-|  |  hash predicates: ss_item_sk = tpcds_parquet.item.i_item_sk
-|  |  fk/pk conjuncts: ss_item_sk = tpcds_parquet.item.i_item_sk
+|  |  hash predicates: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  fk/pk conjuncts: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
 |  |  tuple-ids=24,25,26 row-size=162B cardinality=2.35M cost=2354541
 |  |  in pipelines: 30(GETNEXT), 32(OPEN)
 |  |
-|  |--F56:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F54:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=21.19MB mem-reservation=19.00MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[24564]
 |  |  JOIN BUILD
 |  |  |  join-table-id=18 plan-id=19 cohort-id=05
-|  |  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  |  runtime filters: RF021[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  |  runtime filters: RF021[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  |  mem-estimate=19.00MB mem-reservation=19.00MB spill-buffer=256.00KB thread-reservation=0 cost=18000
 |  |  |
-|  |  77:EXCHANGE [BROADCAST]
+|  |  76:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=2.19MB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=26 row-size=120B cardinality=18.00K cost=6564
 |  |  |  in pipelines: 32(GETNEXT)
 |  |  |
-|  |  F20:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F19:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  Per-Instance Resources: mem-estimate=16.49MB mem-reservation=2.00MB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[54306]
-|  |  32:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  32:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
-|  |     runtime filters: RF019[min_max] -> tpcds_parquet.item.i_item_sk, RF018[bloom] -> tpcds_parquet.item.i_item_sk
+|  |     runtime filters: RF019[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk, RF018[bloom] -> tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
 |  |       columns: all
@@ -5927,7 +5914,7 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  tuple-ids=24,25 row-size=42B cardinality=2.35M cost=2880404
 |  |  in pipelines: 30(GETNEXT), 31(OPEN)
 |  |
-|  |--F57:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |--F55:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=8.83MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[1641]
 |  |  JOIN BUILD
@@ -5936,15 +5923,15 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |  |  runtime filters: RF022[bloom] <- d_date_sk
 |  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=1491
 |  |  |
-|  |  76:EXCHANGE [BROADCAST]
+|  |  75:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=77.68KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=25 row-size=30B cardinality=1.49K cost=150
 |  |  |  in pipelines: 31(GETNEXT)
 |  |  |
-|  |  F19:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F18:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.13MB mem-reservation=2.00MB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[125240]
-|  |  31:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  31:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |     stored statistics:
@@ -5957,11 +5944,11 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |  |     tuple-ids=25 row-size=30B cardinality=1.49K cost=125190
 |  |     in pipelines: 31(GETNEXT)
 |  |
-|  30:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=200.96MB
-|     runtime filters: RF019[min_max] -> tpcds_parquet.store_sales.ss_item_sk, RF021[min_max] -> ss_item_sk, RF018[bloom] -> tpcds_parquet.store_sales.ss_item_sk, RF022[bloom] -> ss_sold_date_sk
+|  30:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
+|     runtime filters: RF019[min_max] -> tpcds_partitioned_parquet_snap.store_sales.ss_item_sk, RF021[min_max] -> ss_item_sk, RF018[bloom] -> tpcds_partitioned_parquet_snap.store_sales.ss_item_sk, RF022[bloom] -> ss_sold_date_sk
 |     stored statistics:
-|       table: rows=2.88M size=200.96MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -5969,26 +5956,26 @@ max-parallelism=6 segment-costs=[32154, 29405, 300, 6] cpu-comparison-result=75
 |     tuple-ids=24 row-size=12B cardinality=2.88M cost=91233752
 |     in pipelines: 30(GETNEXT)
 |
-75:AGGREGATE [FINALIZE]
+74:AGGREGATE [FINALIZE]
 |  output: sum:merge(cs_quantity * cs_list_price)
 |  group by: c_last_name, c_first_name
 |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=20 row-size=52B cardinality=10.53K cost=31578
-|  in pipelines: 75(GETNEXT), 57(OPEN)
+|  tuple-ids=20 row-size=52B cardinality=10.49K cost=31476
+|  in pipelines: 74(GETNEXT), 57(OPEN)
 |
-74:EXCHANGE [HASH(c_last_name,c_first_name)]
-|  mem-estimate=513.84KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=20 row-size=52B cardinality=10.53K cost=576
+73:EXCHANGE [HASH(c_last_name,c_first_name)]
+|  mem-estimate=513.27KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=20 row-size=52B cardinality=10.49K cost=574
 |  in pipelines: 57(GETNEXT)
 |
-F16:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+F15:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=15.37MB mem-reservation=2.00MB thread-reservation=1
-max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (self) vs 39 (sum children))]
+max-parallelism=6 segment-costs=[279347, 574] cpu-comparison-result=39 [max(6 (self) vs 39 (sum children))]
 26:AGGREGATE [STREAMING]
 |  output: sum(CAST(cs_quantity AS DECIMAL(10,0)) * cs_list_price)
 |  group by: c_last_name, c_first_name
 |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=20 row-size=52B cardinality=10.53K cost=31578
+|  tuple-ids=20 row-size=52B cardinality=10.49K cost=31476
 |  in pipelines: 57(GETNEXT)
 |
 25:HASH JOIN [INNER JOIN, PARTITIONED]
@@ -5996,35 +5983,35 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  hash predicates: i_item_sk = cs_item_sk
 |  fk/pk conjuncts: i_item_sk = cs_item_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=7,0,2,18,1 row-size=162B cardinality=10.53K cost=235454
+|  tuple-ids=7,0,2,18,1 row-size=162B cardinality=10.49K cost=235454
 |  in pipelines: 57(GETNEXT), 01(OPEN)
 |
-|--F38:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|--F36:PLAN FRAGMENT [HASH(i_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=4.06MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  max-parallelism=6 segment-costs=[11842] cpu-comparison-result=27 [max(15 (self) vs 27 (sum children))]
+|  |  max-parallelism=6 segment-costs=[11804] cpu-comparison-result=27 [max(24 (self) vs 27 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: cs_item_sk
 |  |  runtime filters: RF000[bloom] <- cs_item_sk, RF001[min_max] <- cs_item_sk
-|  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=10526
+|  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=10492
 |  |
-|  73:EXCHANGE [HASH(cs_item_sk)]
+|  72:EXCHANGE [HASH(cs_item_sk)]
 |  |  mem-estimate=1.12MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0,2,18,1 row-size=112B cardinality=10.53K cost=1316
+|  |  tuple-ids=0,2,18,1 row-size=112B cardinality=10.49K cost=1312
 |  |  in pipelines: 01(GETNEXT)
 |  |
-|  F15:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=6 (adjusted from 3)
-|  Per-Instance Resources: mem-estimate=3.49MB mem-reservation=0B thread-reservation=1
-|  max-parallelism=6 segment-costs=[12706]
+|  F13:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=4.49MB mem-reservation=0B thread-reservation=1
+|  max-parallelism=6 segment-costs=[100487]
 |  24:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=01
 |  |  hash predicates: cs_bill_customer_sk = customer.c_customer_sk
 |  |  fk/pk conjuncts: cs_bill_customer_sk = customer.c_customer_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=128.00KB thread-reservation=0
-|  |  tuple-ids=0,2,18,1 row-size=112B cardinality=10.53K cost=10526
+|  |  tuple-ids=0,2,18,1 row-size=112B cardinality=10.49K cost=10492
 |  |  in pipelines: 01(GETNEXT), 02(OPEN)
 |  |
-|  |--F39:PLAN FRAGMENT [HASH(cs_bill_customer_sk)] hosts=3 instances=6 (adjusted from 3)
+|  |--F37:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=6.73MB mem-reservation=2.88MB thread-reservation=1
 |  |  |  max-parallelism=6 segment-costs=[104294]
 |  |  JOIN BUILD
@@ -6033,7 +6020,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  runtime filters: RF007[min_max] <- customer.c_customer_sk
 |  |  |  mem-estimate=2.88MB mem-reservation=2.88MB spill-buffer=128.00KB thread-reservation=0 cost=100000
 |  |  |
-|  |  71:EXCHANGE [HASH(customer.c_customer_sk)]
+|  |  70:EXCHANGE [HASH(customer.c_customer_sk)]
 |  |  |  mem-estimate=3.85MB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=1 row-size=40B cardinality=100.00K cost=4294
 |  |  |  in pipelines: 02(GETNEXT)
@@ -6041,7 +6028,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  F14:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=17.03MB mem-reservation=1.00MB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[58197]
-|  |  02:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  02:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |     stored statistics:
 |  |       table: rows=100.00K size=5.49MB
@@ -6051,40 +6038,23 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |     tuple-ids=1 row-size=40B cardinality=100.00K cost=53903
 |  |     in pipelines: 02(GETNEXT)
 |  |
-|  70:EXCHANGE [HASH(cs_bill_customer_sk)]
-|  |  mem-estimate=498.70KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=0,2,18 row-size=72B cardinality=10.53K cost=864
-|  |  in pipelines: 01(GETNEXT)
-|  |
-|  F04:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
-|  Per-Instance Resources: mem-estimate=17.97MB mem-reservation=8.00MB thread-reservation=1
-|  max-parallelism=3 segment-costs=[1711508]
-|  23:HASH JOIN [INNER JOIN, BROADCAST]
+|  23:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=02
 |  |  hash predicates: cs_bill_customer_sk = c_customer_sk
 |  |  fk/pk conjuncts: cs_bill_customer_sk = c_customer_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=0,2,18 row-size=72B cardinality=10.53K cost=85309
+|  |  tuple-ids=0,2,18 row-size=72B cardinality=10.49K cost=85029
 |  |  in pipelines: 01(GETNEXT), 68(OPEN)
 |  |
-|  |--F40:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=3.52MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=3 segment-costs=[11173] cpu-comparison-result=16 [max(3 (self) vs 16 (sum children))]
+|  |--F38:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=12.94MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=6 segment-costs=[303907, 10000] cpu-comparison-result=16 [max(6 (self) vs 16 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=02 plan-id=03 cohort-id=02
 |  |  |  build expressions: c_customer_sk
 |  |  |  runtime filters: RF008[bloom] <- c_customer_sk, RF009[min_max] <- c_customer_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=10000
 |  |  |
-|  |  69:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=591.56KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=18 row-size=36B cardinality=10.00K cost=1173
-|  |  |  in pipelines: 68(GETNEXT)
-|  |  |
-|  |  F13:PLAN FRAGMENT [HASH(c_customer_sk)] hosts=3 instances=6 (adjusted from 48)
-|  |  Per-Instance Resources: mem-estimate=11.61MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[303907, 391] cpu-comparison-result=16 [max(6 (self) vs 16 (sum children))]
 |  |  68:AGGREGATE [FINALIZE]
 |  |  |  output: sum:merge(ss_quantity * ss_sales_price), max:merge(tpcds_cmax)
 |  |  |  group by: c_customer_sk
@@ -6114,7 +6084,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  tuple-ids=9,10,16 row-size=32B cardinality=2.88M cost=0
 |  |  |  in pipelines: 10(GETNEXT), 65(OPEN)
 |  |  |
-|  |  |--F41:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |--F39:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  Per-Instance Resources: mem-estimate=16.02KB mem-reservation=0B thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[3] cpu-comparison-result=12 [max(3 (self) vs 12 (sum children))]
 |  |  |  JOIN BUILD
@@ -6180,7 +6150,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  |  tuple-ids=11,13,12 row-size=28B cardinality=2.35M cost=2354541
 |  |  |  |  in pipelines: 12(GETNEXT), 13(OPEN)
 |  |  |  |
-|  |  |  |--F42:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |--F40:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  |  Per-Instance Resources: mem-estimate=19.39MB mem-reservation=19.00MB thread-reservation=1
 |  |  |  |  |  max-parallelism=3 segment-costs=[102346]
 |  |  |  |  JOIN BUILD
@@ -6197,7 +6167,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  |  F10:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[51173]
-|  |  |  |  13:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  |  |  13:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=5.49MB
 |  |  |  |     stored statistics:
 |  |  |  |       table: rows=100.00K size=5.49MB
@@ -6215,7 +6185,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  |  tuple-ids=11,13 row-size=24B cardinality=2.35M cost=2880404
 |  |  |  |  in pipelines: 12(GETNEXT), 14(OPEN)
 |  |  |  |
-|  |  |  |--F43:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  |--F41:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  |  |  max-parallelism=3 segment-costs=[1545]
 |  |  |  |  JOIN BUILD
@@ -6232,7 +6202,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  |  max-parallelism=1 segment-costs=[123638]
-|  |  |  |  14:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  |  14:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |  |  |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |  |  |  |     stored statistics:
@@ -6245,11 +6215,11 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  |     tuple-ids=13 row-size=8B cardinality=1.49K cost=123620
 |  |  |  |     in pipelines: 14(GETNEXT)
 |  |  |  |
-|  |  |  12:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  |  12:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |  |     runtime filters: RF015[min_max] -> ss_customer_sk, RF016[bloom] -> ss_sold_date_sk
 |  |  |     stored statistics:
-|  |  |       table: rows=2.88M size=200.96MB
+|  |  |       table: rows=2.88M size=199.36MB
 |  |  |       partitions: 1824/1824 rows=2.88M
 |  |  |       columns: all
 |  |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -6265,7 +6235,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  tuple-ids=9,10 row-size=16B cardinality=2.88M cost=2880404
 |  |  |  in pipelines: 10(GETNEXT), 11(OPEN)
 |  |  |
-|  |  |--F44:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |--F42:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  |  |  Per-Instance Resources: mem-estimate=19.39MB mem-reservation=19.00MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[102346]
 |  |  |  JOIN BUILD
@@ -6282,9 +6252,9 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |  F07:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.03MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[51173]
-|  |  |  11:SCAN HDFS [tpcds_parquet.customer, RANDOM]
+|  |  |  11:SCAN HDFS [tpcds_partitioned_parquet_snap.customer, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=5.49MB
-|  |  |     runtime filters: RF007[min_max] -> tpcds_parquet.customer.c_customer_sk
+|  |  |     runtime filters: RF007[min_max] -> tpcds_partitioned_parquet_snap.customer.c_customer_sk
 |  |  |     stored statistics:
 |  |  |       table: rows=100.00K size=5.49MB
 |  |  |       columns: all
@@ -6293,11 +6263,11 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  |     tuple-ids=10 row-size=4B cardinality=100.00K cost=50391
 |  |  |     in pipelines: 11(GETNEXT)
 |  |  |
-|  |  10:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
-|  |     runtime filters: RF007[min_max] -> tpcds_parquet.store_sales.ss_customer_sk, RF013[min_max] -> ss_customer_sk
+|  |  10:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
+|  |     runtime filters: RF007[min_max] -> tpcds_partitioned_parquet_snap.store_sales.ss_customer_sk, RF013[min_max] -> ss_customer_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -6305,22 +6275,31 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |     tuple-ids=9 row-size=12B cardinality=2.88M cost=91233752
 |  |     in pipelines: 10(GETNEXT)
 |  |
+|  69:EXCHANGE [HASH(cs_bill_customer_sk)]
+|  |  mem-estimate=1.49MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=0,2 row-size=36B cardinality=85.03K cost=3654
+|  |  in pipelines: 01(GETNEXT)
+|  |
+|  F04:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Instance Resources: mem-estimate=17.03MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[93028994]
 |  22:HASH JOIN [INNER JOIN, BROADCAST]
 |  |  hash-table-id=07
 |  |  hash predicates: cs_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=0,2 row-size=36B cardinality=85.31K cost=1441548
+|  |  tuple-ids=0,2 row-size=36B cardinality=85.03K cost=1441548
 |  |  in pipelines: 01(GETNEXT), 03(OPEN)
 |  |
-|  |--F45:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |--F43:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  JOIN BUILD
 |  |  |  join-table-id=07 plan-id=08 cohort-id=02
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF010[bloom] <- d_date_sk, RF011[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  runtime filters: RF010[bloom] <- d_date_sk
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |
 |  |  58:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
@@ -6330,7 +6309,7 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |  F05:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196957]
-|  |  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  03:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(2000 AS INT), d_moy = CAST(2 AS INT)
 |  |     stored statistics:
@@ -6343,18 +6322,19 @@ max-parallelism=6 segment-costs=[279449, 576] cpu-comparison-result=39 [max(6 (s
 |  |     tuple-ids=2 row-size=12B cardinality=108 cost=196955
 |  |     in pipelines: 03(GETNEXT)
 |  |
-|  01:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF011[min_max] -> cs_sold_date_sk, RF009[min_max] -> cs_bill_customer_sk, RF007[min_max] -> cs_bill_customer_sk, RF010[bloom] -> cs_sold_date_sk, RF008[bloom] -> cs_bill_customer_sk
+|  01:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|     runtime filters: RF009[min_max] -> cs_bill_customer_sk, RF007[min_max] -> cs_bill_customer_sk, RF010[bloom] -> cs_sold_date_sk, RF008[bloom] -> cs_bill_customer_sk
 |     stored statistics:
-|       table: rows=1.44M size=96.62MB
+|       table: rows=1.44M size=151.13MB
+|       partitions: 1831/1831 rows=1.44M
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|     tuple-ids=0 row-size=24B cardinality=1.44M cost=183787
+|     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=0 row-size=24B cardinality=1.44M cost=91583792
 |     in pipelines: 01(GETNEXT)
 |
-72:EXCHANGE [HASH(i_item_sk)]
+71:EXCHANGE [HASH(i_item_sk)]
 |  mem-estimate=4.06MB mem-reservation=0B thread-reservation=0
 |  tuple-ids=7 row-size=50B cardinality=235.45K cost=12417
 |  in pipelines: 57(GETNEXT)
@@ -6381,26 +6361,26 @@ Per-Instance Resources: mem-estimate=34.27MB mem-reservation=17.50MB thread-rese
 max-parallelism=12 segment-costs=[105886861, 124166] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
 09:AGGREGATE [STREAMING]
 |  output: count(*)
-|  group by: substring(i_item_desc, CAST(1 AS BIGINT), CAST(30 AS BIGINT)), tpcds_parquet.item.i_item_sk, d_date
+|  group by: substring(i_item_desc, CAST(1 AS BIGINT), CAST(30 AS BIGINT)), tpcds_partitioned_parquet_snap.item.i_item_sk, d_date
 |  mem-estimate=17.00MB mem-reservation=17.00MB spill-buffer=1.00MB thread-reservation=0
 |  tuple-ids=7 row-size=50B cardinality=2.35M cost=9418164
 |  in pipelines: 04(GETNEXT)
 |
 08:HASH JOIN [INNER JOIN, BROADCAST]
 |  hash-table-id=08
-|  hash predicates: ss_item_sk = tpcds_parquet.item.i_item_sk
-|  fk/pk conjuncts: ss_item_sk = tpcds_parquet.item.i_item_sk
+|  hash predicates: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
+|  fk/pk conjuncts: ss_item_sk = tpcds_partitioned_parquet_snap.item.i_item_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=256.00KB thread-reservation=0
 |  tuple-ids=3,4,5 row-size=162B cardinality=2.35M cost=2354541
 |  in pipelines: 04(GETNEXT), 06(OPEN)
 |
-|--F46:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|--F44:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=21.19MB mem-reservation=19.00MB thread-reservation=1
 |  |  max-parallelism=3 segment-costs=[24564]
 |  JOIN BUILD
 |  |  join-table-id=08 plan-id=09 cohort-id=01
-|  |  build expressions: tpcds_parquet.item.i_item_sk
-|  |  runtime filters: RF003[min_max] <- tpcds_parquet.item.i_item_sk
+|  |  build expressions: tpcds_partitioned_parquet_snap.item.i_item_sk
+|  |  runtime filters: RF003[min_max] <- tpcds_partitioned_parquet_snap.item.i_item_sk
 |  |  mem-estimate=19.00MB mem-reservation=19.00MB spill-buffer=256.00KB thread-reservation=0 cost=18000
 |  |
 |  55:EXCHANGE [BROADCAST]
@@ -6412,9 +6392,9 @@ max-parallelism=12 segment-costs=[105886861, 124166] cpu-comparison-result=12 [m
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.49MB mem-reservation=2.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[54306]
-|  06:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  06:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |     HDFS partitions=1/1 files=1 size=1.73MB
-|     runtime filters: RF001[min_max] -> tpcds_parquet.item.i_item_sk, RF000[bloom] -> tpcds_parquet.item.i_item_sk
+|     runtime filters: RF001[min_max] -> tpcds_partitioned_parquet_snap.item.i_item_sk, RF000[bloom] -> tpcds_partitioned_parquet_snap.item.i_item_sk
 |     stored statistics:
 |       table: rows=18.00K size=1.73MB
 |       columns: all
@@ -6431,7 +6411,7 @@ max-parallelism=12 segment-costs=[105886861, 124166] cpu-comparison-result=12 [m
 |  tuple-ids=3,4 row-size=42B cardinality=2.35M cost=2880404
 |  in pipelines: 04(GETNEXT), 05(OPEN)
 |
-|--F47:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|--F45:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
 |  |  Per-Instance Resources: mem-estimate=8.83MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  max-parallelism=3 segment-costs=[1641]
 |  JOIN BUILD
@@ -6448,7 +6428,7 @@ max-parallelism=12 segment-costs=[105886861, 124166] cpu-comparison-result=12 [m
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.13MB mem-reservation=2.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[125240]
-|  05:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  05:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     predicates: d_year IN (CAST(2000 AS INT), CAST(2001 AS INT), CAST(2002 AS INT), CAST(2003 AS INT))
 |     stored statistics:
@@ -6461,11 +6441,11 @@ max-parallelism=12 segment-costs=[105886861, 124166] cpu-comparison-result=12 [m
 |     tuple-ids=4 row-size=30B cardinality=1.49K cost=125190
 |     in pipelines: 05(GETNEXT)
 |
-04:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-   HDFS partitions=1824/1824 files=1824 size=200.96MB
-   runtime filters: RF001[min_max] -> tpcds_parquet.store_sales.ss_item_sk, RF003[min_max] -> ss_item_sk, RF000[bloom] -> tpcds_parquet.store_sales.ss_item_sk, RF004[bloom] -> ss_sold_date_sk
+04:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=199.36MB
+   runtime filters: RF001[min_max] -> tpcds_partitioned_parquet_snap.store_sales.ss_item_sk, RF003[min_max] -> ss_item_sk, RF000[bloom] -> tpcds_partitioned_parquet_snap.store_sales.ss_item_sk, RF004[bloom] -> ss_sold_date_sk
    stored statistics:
-     table: rows=2.88M size=200.96MB
+     table: rows=2.88M size=199.36MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -6577,11 +6557,11 @@ ORDER BY 1,
 LIMIT 100;
 
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=152.56MB Threads=28
-Per-Host Resource Estimates: Memory=393MB
-F16:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+Max Per-Host Resource Reservation: Memory=125.44MB Threads=49
+Per-Host Resource Estimates: Memory=684MB
+F18:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=24.84MB mem-reservation=15.94MB thread-reservation=1
-|  max-parallelism=1 segment-costs=[8891, 17696, 35376, 119504, 400, 500] cpu-comparison-result=32 [max(1 (self) vs 32 (sum children))]
+|  max-parallelism=1 segment-costs=[8837, 17638, 35376, 119276, 400, 500] cpu-comparison-result=66 [max(1 (self) vs 66 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: channel, item, return_ratio, return_rank, currency_rank
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=500
@@ -6595,12 +6575,12 @@ PLAN-ROOT SINK
 34:AGGREGATE [FINALIZE]
 |  group by: channel, item, return_ratio, return_rank, currency_rank
 |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=24 row-size=52B cardinality=2.99K cost=14940
+|  tuple-ids=24 row-size=52B cardinality=2.98K cost=14910
 |  in pipelines: 34(GETNEXT), 09(OPEN), 20(OPEN), 31(OPEN)
 |
 00:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=24 row-size=52B cardinality=2.99K cost=44820
+|  tuple-ids=24 row-size=52B cardinality=2.98K cost=44730
 |  in pipelines: 09(GETNEXT), 20(GETNEXT), 31(GETNEXT)
 |
 |--33:SELECT
@@ -6632,37 +6612,37 @@ PLAN-ROOT SINK
 |  |  tuple-ids=56,53 row-size=80B cardinality=17.05K cost=17055
 |  |  in pipelines: 29(GETNEXT)
 |  |
-|  51:MERGING-EXCHANGE [UNPARTITIONED]
+|  53:MERGING-EXCHANGE [UNPARTITIONED]
 |  |  order by: (CAST(sum(coalesce(sr.sr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(sts.ss_quantity, 0)) AS DECIMAL(15,4))) ASC
 |  |  mem-estimate=855.73KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=56 row-size=72B cardinality=17.05K cost=1266
 |  |  in pipelines: 29(GETNEXT)
 |  |
-|  F14:PLAN FRAGMENT [HASH(sts.ss_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|  F16:PLAN FRAGMENT [HASH(sts.ss_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=7.94MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[86275, 17055, 1266] cpu-comparison-result=18 [max(6 (self) vs 18 (sum children))]
+|  max-parallelism=6 segment-costs=[86275, 17055, 1266] cpu-comparison-result=22 [max(6 (self) vs 22 (sum children))]
 |  29:SORT
 |  |  order by: (CAST(sum(coalesce(sr.sr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(sts.ss_quantity, 0)) AS DECIMAL(15,4))) ASC
 |  |  materialized: (CAST(sum(coalesce(sr.sr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(sts.ss_quantity, 0)) AS DECIMAL(15,4)))
 |  |  mem-estimate=6.00MB mem-reservation=6.00MB spill-buffer=2.00MB thread-reservation=0
 |  |  tuple-ids=56 row-size=72B cardinality=17.05K cost=17055
-|  |  in pipelines: 29(GETNEXT), 50(OPEN)
+|  |  in pipelines: 29(GETNEXT), 52(OPEN)
 |  |
-|  50:AGGREGATE [FINALIZE]
+|  52:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(coalesce(sr.sr_return_quantity, 0)), sum:merge(coalesce(sts.ss_quantity, 0)), sum:merge(coalesce(sr.sr_return_amt, 0)), sum:merge(coalesce(sts.ss_net_paid, 0))
 |  |  group by: sts.ss_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=19 row-size=56B cardinality=17.05K cost=85275
-|  |  in pipelines: 50(GETNEXT), 23(OPEN)
+|  |  in pipelines: 52(GETNEXT), 23(OPEN)
 |  |
-|  49:EXCHANGE [HASH(sts.ss_item_sk)]
+|  51:EXCHANGE [HASH(sts.ss_item_sk)]
 |  |  mem-estimate=670.90KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=19 row-size=56B cardinality=17.05K cost=1000
 |  |  in pipelines: 23(GETNEXT)
 |  |
-|  F12:PLAN FRAGMENT [HASH(sts.ss_item_sk,sts.ss_ticket_number)] hosts=3 instances=6 (adjusted from 48)
+|  F14:PLAN FRAGMENT [HASH(sts.ss_item_sk,sts.ss_ticket_number)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=14.76MB mem-reservation=2.00MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[959522, 1000] cpu-comparison-result=18 [max(18 (self) vs 11 (sum children))]
+|  max-parallelism=6 segment-costs=[959522, 1000] cpu-comparison-result=22 [max(18 (self) vs 22 (sum children))]
 |  28:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(coalesce(sr.sr_return_quantity, CAST(0 AS INT)) AS BIGINT)), sum(CAST(coalesce(sts.ss_quantity, CAST(0 AS INT)) AS BIGINT)), sum(coalesce(sr.sr_return_amt, CAST(0 AS DECIMAL(7,2)))), sum(coalesce(sts.ss_net_paid, CAST(0 AS DECIMAL(7,2))))
 |  |  group by: sts.ss_item_sk
@@ -6678,7 +6658,7 @@ PLAN-ROOT SINK
 |  |  tuple-ids=16,17N,18 row-size=68B cardinality=17.05K cost=288040
 |  |  in pipelines: 23(GETNEXT), 25(OPEN)
 |  |
-|  |--F21:PLAN FRAGMENT [HASH(sts.ss_item_sk,sts.ss_ticket_number)] hosts=3 instances=3
+|  |--F23:PLAN FRAGMENT [HASH(sts.ss_item_sk,sts.ss_ticket_number)] hosts=3 instances=3
 |  |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  JOIN BUILD
@@ -6687,15 +6667,15 @@ PLAN-ROOT SINK
 |  |  |  runtime filters: RF004[bloom] <- d_date_sk
 |  |  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |
-|  |  48:EXCHANGE [BROADCAST]
+|  |  50:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=18 row-size=12B cardinality=108 cost=6
 |  |  |  in pipelines: 25(GETNEXT)
 |  |  |
-|  |  F13:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F15:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196957]
-|  |  25:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  25:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(2001 AS INT), d_moy = CAST(12 AS INT)
 |  |     stored statistics:
@@ -6717,50 +6697,51 @@ PLAN-ROOT SINK
 |  |  tuple-ids=16,17N row-size=56B cardinality=288.04K cost=576080
 |  |  in pipelines: 23(GETNEXT), 24(OPEN)
 |  |
-|  |--F22:PLAN FRAGMENT [HASH(sts.ss_item_sk,sts.ss_ticket_number)] hosts=3 instances=6 (adjusted from 48)
-|  |  |  Per-Instance Resources: mem-estimate=2.62MB mem-reservation=1.94MB thread-reservation=1
+|  |--F24:PLAN FRAGMENT [HASH(sts.ss_item_sk,sts.ss_ticket_number)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=2.48MB mem-reservation=1.94MB thread-reservation=1
 |  |  |  max-parallelism=6 segment-costs=[58289]
 |  |  JOIN BUILD
 |  |  |  join-table-id=05 plan-id=06 cohort-id=03
 |  |  |  build expressions: sr.sr_item_sk, sr.sr_ticket_number
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=57502
 |  |  |
-|  |  47:EXCHANGE [HASH(sr.sr_item_sk,sr.sr_ticket_number)]
-|  |  |  mem-estimate=701.85KB mem-reservation=0B thread-reservation=0
+|  |  49:EXCHANGE [HASH(sr.sr_item_sk,sr.sr_ticket_number)]
+|  |  |  mem-estimate=560.62KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=17 row-size=24B cardinality=28.75K cost=787
 |  |  |  in pipelines: 24(GETNEXT)
 |  |  |
-|  |  F11:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Instance Resources: mem-estimate=16.66MB mem-reservation=4.00MB thread-reservation=1
-|  |  max-parallelism=1 segment-costs=[345040]
-|  |  24:SCAN HDFS [tpcds_parquet.store_returns sr, RANDOM]
-|  |     HDFS partitions=1/1 files=1 size=15.43MB
+|  |  F13:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=16.66MB mem-reservation=256.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[100495035]
+|  |  24:SCAN HDFS [tpcds_partitioned_parquet_snap.store_returns sr, RANDOM]
+|  |     HDFS partitions=2004/2004 files=2004 size=33.80MB
 |  |     predicates: sr.sr_return_amt > CAST(10000 AS DECIMAL(5,0))
 |  |     stored statistics:
-|  |       table: rows=287.51K size=15.43MB
+|  |       table: rows=287.51K size=33.80MB
+|  |       partitions: 2004/2004 rows=287.51K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=287.51K
+|  |     extrapolated-rows=disabled max-scan-range-rows=10.01K
 |  |     parquet statistics predicates: sr.sr_return_amt > CAST(10000 AS DECIMAL(5,0))
 |  |     parquet dictionary predicates: sr.sr_return_amt > CAST(10000 AS DECIMAL(5,0))
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=17 row-size=24B cardinality=28.75K cost=344253
+|  |     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+|  |     tuple-ids=17 row-size=24B cardinality=28.75K cost=100494248
 |  |     in pipelines: 24(GETNEXT)
 |  |
-|  46:EXCHANGE [HASH(sts.ss_item_sk,sts.ss_ticket_number)]
+|  48:EXCHANGE [HASH(sts.ss_item_sk,sts.ss_ticket_number)]
 |  |  mem-estimate=3.35MB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=16 row-size=32B cardinality=288.04K cost=10127
 |  |  in pipelines: 23(GETNEXT)
 |  |
-|  F10:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  F12:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.84MB mem-reservation=4.00MB thread-reservation=1
 |  max-parallelism=12 segment-costs=[99941351]
-|  23:SCAN HDFS [tpcds_parquet.store_sales sts, RANDOM]
-|     HDFS partitions=1824/1824 files=1824 size=199.44MB
+|  23:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales sts, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |     predicates: sts.ss_net_paid > CAST(0 AS DECIMAL(3,0)), sts.ss_net_profit > CAST(1 AS DECIMAL(3,0)), sts.ss_quantity > CAST(0 AS INT)
 |     runtime filters: RF004[bloom] -> ss_sold_date_sk
 |     stored statistics:
-|       table: rows=2.88M size=199.44MB
+|       table: rows=2.88M size=199.36MB
 |       partitions: 1824/1824 rows=2.88M
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -6773,7 +6754,7 @@ PLAN-ROOT SINK
 |--22:SELECT
 |  |  predicates: (rank() <= CAST(10 AS BIGINT) OR rank() <= CAST(10 AS BIGINT))
 |  |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=47,44 row-size=104B cardinality=853 cost=8531
+|  |  tuple-ids=47,44 row-size=104B cardinality=850 cost=8503
 |  |  in pipelines: 20(GETNEXT)
 |  |
 |  21:ANALYTIC
@@ -6781,14 +6762,14 @@ PLAN-ROOT SINK
 |  |  order by: (CAST(sum(coalesce(cr.cr_return_amount, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_net_paid, 0)) AS DECIMAL(15,4))) ASC
 |  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
 |  |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
-|  |  tuple-ids=47,44 row-size=104B cardinality=8.53K cost=8531
+|  |  tuple-ids=47,44 row-size=104B cardinality=8.50K cost=8503
 |  |  in pipelines: 20(GETNEXT)
 |  |
 |  20:SORT
 |  |  order by: (CAST(sum(coalesce(cr.cr_return_amount, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_net_paid, 0)) AS DECIMAL(15,4))) ASC
 |  |  materialized: (CAST(sum(coalesce(cr.cr_return_amount, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_net_paid, 0)) AS DECIMAL(15,4)))
 |  |  mem-estimate=6.00MB mem-reservation=6.00MB spill-buffer=2.00MB thread-reservation=0
-|  |  tuple-ids=47 row-size=96B cardinality=8.53K cost=8531
+|  |  tuple-ids=47 row-size=96B cardinality=8.50K cost=8503
 |  |  in pipelines: 20(GETNEXT), 18(OPEN)
 |  |
 |  19:ANALYTIC
@@ -6796,46 +6777,45 @@ PLAN-ROOT SINK
 |  |  order by: (CAST(sum(coalesce(cr.cr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_quantity, 0)) AS DECIMAL(15,4))) ASC
 |  |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
 |  |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
-|  |  tuple-ids=45,42 row-size=80B cardinality=8.53K cost=8531
+|  |  tuple-ids=45,42 row-size=80B cardinality=8.50K cost=8503
 |  |  in pipelines: 18(GETNEXT)
 |  |
-|  45:MERGING-EXCHANGE [UNPARTITIONED]
+|  47:MERGING-EXCHANGE [UNPARTITIONED]
 |  |  order by: (CAST(sum(coalesce(cr.cr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_quantity, 0)) AS DECIMAL(15,4))) ASC
-|  |  mem-estimate=655.95KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=45 row-size=72B cardinality=8.53K cost=634
+|  |  mem-estimate=655.29KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=45 row-size=72B cardinality=8.50K cost=632
 |  |  in pipelines: 18(GETNEXT)
 |  |
-|  F08:PLAN FRAGMENT [HASH(cs.cs_item_sk)] hosts=3 instances=6 (adjusted from 3)
+|  F10:PLAN FRAGMENT [HASH(cs.cs_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  Per-Instance Resources: mem-estimate=16.00MB mem-reservation=7.94MB thread-reservation=1
-|  max-parallelism=6 segment-costs=[43155, 8531, 634] cpu-comparison-result=8 [max(6 (self) vs 8 (sum children))]
+|  max-parallelism=6 segment-costs=[43014, 8503, 632] cpu-comparison-result=22 [max(6 (self) vs 22 (sum children))]
 |  18:SORT
 |  |  order by: (CAST(sum(coalesce(cr.cr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_quantity, 0)) AS DECIMAL(15,4))) ASC
 |  |  materialized: (CAST(sum(coalesce(cr.cr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(cs.cs_quantity, 0)) AS DECIMAL(15,4)))
 |  |  mem-estimate=6.00MB mem-reservation=6.00MB spill-buffer=2.00MB thread-reservation=0
-|  |  tuple-ids=45 row-size=72B cardinality=8.53K cost=8531
-|  |  in pipelines: 18(GETNEXT), 44(OPEN)
+|  |  tuple-ids=45 row-size=72B cardinality=8.50K cost=8503
+|  |  in pipelines: 18(GETNEXT), 46(OPEN)
 |  |
-|  44:AGGREGATE [FINALIZE]
+|  46:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(coalesce(cr.cr_return_quantity, 0)), sum:merge(coalesce(cs.cs_quantity, 0)), sum:merge(coalesce(cr.cr_return_amount, 0)), sum:merge(coalesce(cs.cs_net_paid, 0))
 |  |  group by: cs.cs_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=11 row-size=56B cardinality=8.53K cost=42655
-|  |  in pipelines: 44(GETNEXT), 12(OPEN)
+|  |  tuple-ids=11 row-size=56B cardinality=8.50K cost=42515
+|  |  in pipelines: 46(GETNEXT), 12(OPEN)
 |  |
-|  43:EXCHANGE [HASH(cs.cs_item_sk)]
-|  |  mem-estimate=335.51KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=11 row-size=56B cardinality=8.53K cost=500
+|  45:EXCHANGE [HASH(cs.cs_item_sk)]
+|  |  mem-estimate=515.00KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=11 row-size=56B cardinality=8.50K cost=499
 |  |  in pipelines: 12(GETNEXT)
 |  |
-|  F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  Per-Instance Resources: mem-estimate=27.41MB mem-reservation=18.00MB thread-reservation=1
-|  max-parallelism=3 segment-costs=[4994813, 500] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+|  F08:PLAN FRAGMENT [HASH(cs.cs_item_sk,cs.cs_order_number)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=13.29MB mem-reservation=2.00MB thread-reservation=1
+|  max-parallelism=6 segment-costs=[480048, 499] cpu-comparison-result=22 [max(18 (self) vs 22 (sum children))]
 |  17:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(coalesce(cr.cr_return_quantity, CAST(0 AS INT)) AS BIGINT)), sum(CAST(coalesce(cs.cs_quantity, CAST(0 AS INT)) AS BIGINT)), sum(coalesce(cr.cr_return_amount, CAST(0 AS DECIMAL(7,2)))), sum(coalesce(cs.cs_net_paid, CAST(0 AS DECIMAL(7,2))))
 |  |  group by: cs.cs_item_sk
 |  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=11 row-size=56B cardinality=8.53K cost=42655
+|  |  tuple-ids=11 row-size=56B cardinality=8.50K cost=42515
 |  |  in pipelines: 12(GETNEXT)
 |  |
 |  16:HASH JOIN [INNER JOIN, BROADCAST]
@@ -6843,27 +6823,27 @@ PLAN-ROOT SINK
 |  |  hash predicates: cs_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=8,9N,10 row-size=68B cardinality=8.53K cost=144155
+|  |  tuple-ids=8,9N,10 row-size=68B cardinality=8.50K cost=144155
 |  |  in pipelines: 12(GETNEXT), 14(OPEN)
 |  |
-|  |--F19:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |--F21:PLAN FRAGMENT [HASH(cs.cs_item_sk,cs.cs_order_number)] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[114]
 |  |  JOIN BUILD
 |  |  |  join-table-id=02 plan-id=03 cohort-id=02
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF002[bloom] <- d_date_sk, RF003[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  |  runtime filters: RF002[bloom] <- d_date_sk
+|  |  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |  |
-|  |  42:EXCHANGE [BROADCAST]
+|  |  44:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=10 row-size=12B cardinality=108 cost=6
 |  |  |  in pipelines: 14(GETNEXT)
 |  |  |
-|  |  F07:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[196957]
-|  |  14:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  14:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: d_year = CAST(2001 AS INT), d_moy = CAST(12 AS INT)
 |  |     stored statistics:
@@ -6876,7 +6856,7 @@ PLAN-ROOT SINK
 |  |     tuple-ids=10 row-size=12B cardinality=108 cost=196955
 |  |     in pipelines: 14(GETNEXT)
 |  |
-|  15:HASH JOIN [LEFT OUTER JOIN, BROADCAST]
+|  15:HASH JOIN [LEFT OUTER JOIN, PARTITIONED]
 |  |  hash-table-id=03
 |  |  hash predicates: cs.cs_item_sk = cr.cr_item_sk, cs.cs_order_number = cr.cr_order_number
 |  |  fk/pk conjuncts: cs.cs_item_sk = cr.cr_item_sk, cs.cs_order_number = cr.cr_order_number
@@ -6885,53 +6865,64 @@ PLAN-ROOT SINK
 |  |  tuple-ids=8,9N row-size=56B cardinality=144.16K cost=288310
 |  |  in pipelines: 12(GETNEXT), 13(OPEN)
 |  |
-|  |--F20:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.29MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=3 segment-costs=[29996]
+|  |--F22:PLAN FRAGMENT [HASH(cs.cs_item_sk,cs.cs_order_number)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=2.38MB mem-reservation=1.94MB thread-reservation=1
+|  |  |  max-parallelism=6 segment-costs=[29208]
 |  |  JOIN BUILD
 |  |  |  join-table-id=03 plan-id=04 cohort-id=02
 |  |  |  build expressions: cr.cr_item_sk, cr.cr_order_number
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=28814
 |  |  |
-|  |  41:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=365.66KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=9 row-size=24B cardinality=14.41K cost=1182
+|  |  43:EXCHANGE [HASH(cr.cr_item_sk,cr.cr_order_number)]
+|  |  |  mem-estimate=448.55KB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=9 row-size=24B cardinality=14.41K cost=394
 |  |  |  in pipelines: 13(GETNEXT)
 |  |  |
-|  |  F06:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=4.00MB thread-reservation=1
-|  |  max-parallelism=1 segment-costs=[197838]
-|  |  13:SCAN HDFS [tpcds_parquet.catalog_returns cr, RANDOM]
-|  |     HDFS partitions=1/1 files=1 size=10.62MB
+|  |  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=16.66MB mem-reservation=32.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[103147834]
+|  |  13:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_returns cr, RANDOM]
+|  |     HDFS partitions=2060/2060 files=2060 size=30.62MB
 |  |     predicates: cr.cr_return_amount > CAST(10000 AS DECIMAL(5,0))
 |  |     stored statistics:
-|  |       table: rows=144.07K size=10.62MB
+|  |       table: rows=144.07K size=30.62MB
+|  |       partitions: 2060/2060 rows=144.07K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=144.07K
+|  |     extrapolated-rows=disabled max-scan-range-rows=139
 |  |     parquet statistics predicates: cr.cr_return_amount > CAST(10000 AS DECIMAL(5,0))
 |  |     parquet dictionary predicates: cr.cr_return_amount > CAST(10000 AS DECIMAL(5,0))
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=9 row-size=24B cardinality=14.41K cost=197444
+|  |     mem-estimate=16.00MB mem-reservation=32.00KB thread-reservation=0
+|  |     tuple-ids=9 row-size=24B cardinality=14.41K cost=103147440
 |  |     in pipelines: 13(GETNEXT)
 |  |
-|  12:SCAN HDFS [tpcds_parquet.catalog_sales cs, RANDOM]
-|     HDFS partitions=1/1 files=3 size=96.62MB
+|  42:EXCHANGE [HASH(cs.cs_item_sk,cs.cs_order_number)]
+|  |  mem-estimate=1.89MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=8 row-size=32B cardinality=144.16K cost=5068
+|  |  in pipelines: 12(GETNEXT)
+|  |
+|  F06:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
+|  Per-Instance Resources: mem-estimate=16.84MB mem-reservation=256.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[95924764]
+|  12:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales cs, RANDOM]
+|     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |     predicates: cs.cs_net_paid > CAST(0 AS DECIMAL(3,0)), cs.cs_net_profit > CAST(1 AS DECIMAL(3,0)), cs.cs_quantity > CAST(0 AS INT)
-|     runtime filters: RF003[min_max] -> cs_sold_date_sk, RF002[bloom] -> cs_sold_date_sk
+|     runtime filters: RF002[bloom] -> cs_sold_date_sk
 |     stored statistics:
-|       table: rows=1.44M size=96.62MB
+|       table: rows=1.44M size=151.13MB
+|       partitions: 1831/1831 rows=1.44M
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=650.14K
+|     extrapolated-rows=disabled max-scan-range-rows=7.18K
 |     parquet statistics predicates: cs.cs_net_paid > CAST(0 AS DECIMAL(3,0)), cs.cs_net_profit > CAST(1 AS DECIMAL(3,0)), cs.cs_quantity > CAST(0 AS INT)
 |     parquet dictionary predicates: cs.cs_net_paid > CAST(0 AS DECIMAL(3,0)), cs.cs_net_profit > CAST(1 AS DECIMAL(3,0)), cs.cs_quantity > CAST(0 AS INT)
-|     mem-estimate=16.00MB mem-reservation=16.00MB thread-reservation=0
-|     tuple-ids=8 row-size=32B cardinality=144.16K cost=4519693
+|     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+|     tuple-ids=8 row-size=32B cardinality=144.16K cost=95919696
 |     in pipelines: 12(GETNEXT)
 |
 11:SELECT
 |  predicates: (rank() <= CAST(10 AS BIGINT) OR rank() <= CAST(10 AS BIGINT))
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
-|  tuple-ids=36,33 row-size=104B cardinality=429 cost=4286
+|  tuple-ids=36,33 row-size=104B cardinality=426 cost=4260
 |  in pipelines: 09(GETNEXT)
 |
 10:ANALYTIC
@@ -6939,14 +6930,14 @@ PLAN-ROOT SINK
 |  order by: (CAST(sum(coalesce(wr.wr_return_amt, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_net_paid, 0)) AS DECIMAL(15,4))) ASC
 |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
-|  tuple-ids=36,33 row-size=104B cardinality=4.29K cost=4286
+|  tuple-ids=36,33 row-size=104B cardinality=4.26K cost=4260
 |  in pipelines: 09(GETNEXT)
 |
 09:SORT
 |  order by: (CAST(sum(coalesce(wr.wr_return_amt, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_net_paid, 0)) AS DECIMAL(15,4))) ASC
 |  materialized: (CAST(sum(coalesce(wr.wr_return_amt, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_net_paid, 0)) AS DECIMAL(15,4)))
 |  mem-estimate=6.00MB mem-reservation=6.00MB spill-buffer=2.00MB thread-reservation=0
-|  tuple-ids=36 row-size=96B cardinality=4.29K cost=4286
+|  tuple-ids=36 row-size=96B cardinality=4.26K cost=4260
 |  in pipelines: 09(GETNEXT), 07(OPEN)
 |
 08:ANALYTIC
@@ -6954,46 +6945,45 @@ PLAN-ROOT SINK
 |  order by: (CAST(sum(coalesce(wr.wr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_quantity, 0)) AS DECIMAL(15,4))) ASC
 |  window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0
-|  tuple-ids=34,31 row-size=80B cardinality=4.29K cost=4286
+|  tuple-ids=34,31 row-size=80B cardinality=4.26K cost=4260
 |  in pipelines: 07(GETNEXT)
 |
-40:MERGING-EXCHANGE [UNPARTITIONED]
+41:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: (CAST(sum(coalesce(wr.wr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_quantity, 0)) AS DECIMAL(15,4))) ASC
-|  mem-estimate=454.68KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=34 row-size=72B cardinality=4.29K cost=319
+|  mem-estimate=555.84KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=34 row-size=72B cardinality=4.26K cost=317
 |  in pipelines: 07(GETNEXT)
 |
-F03:PLAN FRAGMENT [HASH(ws.ws_item_sk)] hosts=2 instances=4 (adjusted from 2)
+F04:PLAN FRAGMENT [HASH(ws.ws_item_sk)] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=16.00MB mem-reservation=7.94MB thread-reservation=1
-max-parallelism=4 segment-costs=[21682, 4286, 319] cpu-comparison-result=6 [max(4 (self) vs 6 (sum children))]
+max-parallelism=6 segment-costs=[21550, 4260, 317] cpu-comparison-result=22 [max(6 (self) vs 22 (sum children))]
 07:SORT
 |  order by: (CAST(sum(coalesce(wr.wr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_quantity, 0)) AS DECIMAL(15,4))) ASC
 |  materialized: (CAST(sum(coalesce(wr.wr_return_quantity, 0)) AS DECIMAL(15,4)) / CAST(sum(coalesce(ws.ws_quantity, 0)) AS DECIMAL(15,4)))
 |  mem-estimate=6.00MB mem-reservation=6.00MB spill-buffer=2.00MB thread-reservation=0
-|  tuple-ids=34 row-size=72B cardinality=4.29K cost=4286
-|  in pipelines: 07(GETNEXT), 39(OPEN)
+|  tuple-ids=34 row-size=72B cardinality=4.26K cost=4260
+|  in pipelines: 07(GETNEXT), 40(OPEN)
 |
-39:AGGREGATE [FINALIZE]
+40:AGGREGATE [FINALIZE]
 |  output: sum:merge(coalesce(wr.wr_return_quantity, 0)), sum:merge(coalesce(ws.ws_quantity, 0)), sum:merge(coalesce(wr.wr_return_amt, 0)), sum:merge(coalesce(ws.ws_net_paid, 0))
 |  group by: ws.ws_item_sk
 |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=56B cardinality=4.29K cost=21430
-|  in pipelines: 39(GETNEXT), 01(OPEN)
+|  tuple-ids=3 row-size=56B cardinality=4.26K cost=21300
+|  in pipelines: 40(GETNEXT), 01(OPEN)
 |
-38:EXCHANGE [HASH(ws.ws_item_sk)]
-|  mem-estimate=237.20KB mem-reservation=0B thread-reservation=0
-|  tuple-ids=3 row-size=56B cardinality=4.29K cost=252
+39:EXCHANGE [HASH(ws.ws_item_sk)]
+|  mem-estimate=437.66KB mem-reservation=0B thread-reservation=0
+|  tuple-ids=3 row-size=56B cardinality=4.26K cost=250
 |  in pipelines: 01(GETNEXT)
 |
-F00:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-Per-Instance Resources: mem-estimate=26.94MB mem-reservation=18.00MB thread-reservation=1
-max-parallelism=2 segment-costs=[2517877, 252] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+F02:PLAN FRAGMENT [HASH(ws.ws_item_sk,ws.ws_order_number)] hosts=3 instances=6 (adjusted from 48)
+Per-Instance Resources: mem-estimate=12.56MB mem-reservation=2.00MB thread-reservation=1
+max-parallelism=6 segment-costs=[239644, 250] cpu-comparison-result=22 [max(18 (self) vs 22 (sum children))]
 06:AGGREGATE [STREAMING]
 |  output: sum(CAST(coalesce(wr.wr_return_quantity, CAST(0 AS INT)) AS BIGINT)), sum(CAST(coalesce(ws.ws_quantity, CAST(0 AS INT)) AS BIGINT)), sum(coalesce(wr.wr_return_amt, CAST(0 AS DECIMAL(7,2)))), sum(coalesce(ws.ws_net_paid, CAST(0 AS DECIMAL(7,2))))
 |  group by: ws.ws_item_sk
 |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=3 row-size=56B cardinality=4.29K cost=21430
+|  tuple-ids=3 row-size=56B cardinality=4.26K cost=21300
 |  in pipelines: 01(GETNEXT)
 |
 05:HASH JOIN [INNER JOIN, BROADCAST]
@@ -7001,27 +6991,27 @@ max-parallelism=2 segment-costs=[2517877, 252] cpu-comparison-result=6 [max(2 (s
 |  hash predicates: ws_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: ws_sold_date_sk = d_date_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=0,1N,2 row-size=68B cardinality=4.29K cost=71938
+|  tuple-ids=0,1N,2 row-size=68B cardinality=4.26K cost=71938
 |  in pipelines: 01(GETNEXT), 03(OPEN)
 |
-|--F17:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  max-parallelism=2 segment-costs=[112]
+|--F19:PLAN FRAGMENT [HASH(ws.ws_item_sk,ws.ws_order_number)] hosts=3 instances=3
+|  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  max-parallelism=3 segment-costs=[114]
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: d_date_sk
-|  |  runtime filters: RF000[bloom] <- d_date_sk, RF001[min_max] <- d_date_sk
-|  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=108
+|  |  runtime filters: RF000[bloom] <- d_date_sk
+|  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0 cost=108
 |  |
-|  37:EXCHANGE [BROADCAST]
+|  38:EXCHANGE [BROADCAST]
 |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=2 row-size=12B cardinality=108 cost=4
+|  |  tuple-ids=2 row-size=12B cardinality=108 cost=6
 |  |  in pipelines: 03(GETNEXT)
 |  |
-|  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  F03:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[196957]
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  03:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     predicates: d_year = CAST(2001 AS INT), d_moy = CAST(12 AS INT)
 |     stored statistics:
@@ -7034,7 +7024,7 @@ max-parallelism=2 segment-costs=[2517877, 252] cpu-comparison-result=6 [max(2 (s
 |     tuple-ids=2 row-size=12B cardinality=108 cost=196955
 |     in pipelines: 03(GETNEXT)
 |
-04:HASH JOIN [LEFT OUTER JOIN, BROADCAST]
+04:HASH JOIN [LEFT OUTER JOIN, PARTITIONED]
 |  hash-table-id=01
 |  hash predicates: ws.ws_item_sk = wr.wr_item_sk, ws.ws_order_number = wr.wr_order_number
 |  fk/pk conjuncts: ws.ws_item_sk = wr.wr_item_sk, ws.ws_order_number = wr.wr_order_number
@@ -7043,47 +7033,58 @@ max-parallelism=2 segment-costs=[2517877, 252] cpu-comparison-result=6 [max(2 (s
 |  tuple-ids=0,1N row-size=56B cardinality=71.94K cost=143876
 |  in pipelines: 01(GETNEXT), 02(OPEN)
 |
-|--F18:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  Per-Instance Resources: mem-estimate=2.13MB mem-reservation=1.94MB thread-reservation=1
-|  |  max-parallelism=2 segment-costs=[14746]
+|--F20:PLAN FRAGMENT [HASH(ws.ws_item_sk,ws.ws_order_number)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=2.32MB mem-reservation=1.94MB thread-reservation=1
+|  |  max-parallelism=6 segment-costs=[14549]
 |  JOIN BUILD
 |  |  join-table-id=01 plan-id=02 cohort-id=01
 |  |  build expressions: wr.wr_item_sk, wr.wr_order_number
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=14352
 |  |
-|  36:EXCHANGE [BROADCAST]
-|  |  mem-estimate=196.19KB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=1 row-size=24B cardinality=7.18K cost=394
+|  37:EXCHANGE [HASH(wr.wr_item_sk,wr.wr_order_number)]
+|  |  mem-estimate=392.06KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=1 row-size=24B cardinality=7.18K cost=197
 |  |  in pipelines: 02(GETNEXT)
 |  |
-|  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=2.00MB thread-reservation=1
-|  max-parallelism=1 segment-costs=[123642]
-|  02:SCAN HDFS [tpcds_parquet.web_returns wr, RANDOM]
-|     HDFS partitions=1/1 files=1 size=5.66MB
+|  F01:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=16.66MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[105773645]
+|  02:SCAN HDFS [tpcds_partitioned_parquet_snap.web_returns wr, RANDOM]
+|     HDFS partitions=2114/2114 files=2114 size=20.82MB
 |     predicates: wr.wr_return_amt > CAST(10000 AS DECIMAL(5,0))
 |     stored statistics:
-|       table: rows=71.76K size=5.66MB
+|       table: rows=71.76K size=20.82MB
+|       partitions: 2114/2114 rows=71.76K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=71.76K
+|     extrapolated-rows=disabled max-scan-range-rows=3.13K
 |     parquet statistics predicates: wr.wr_return_amt > CAST(10000 AS DECIMAL(5,0))
 |     parquet dictionary predicates: wr.wr_return_amt > CAST(10000 AS DECIMAL(5,0))
-|     mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
-|     tuple-ids=1 row-size=24B cardinality=7.18K cost=123445
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=1 row-size=24B cardinality=7.18K cost=105773448
 |     in pipelines: 02(GETNEXT)
 |
-01:SCAN HDFS [tpcds_parquet.web_sales ws, RANDOM]
-   HDFS partitions=1/1 files=2 size=45.09MB
+36:EXCHANGE [HASH(ws.ws_item_sk,ws.ws_order_number)]
+|  mem-estimate=1.15MB mem-reservation=0B thread-reservation=0
+|  tuple-ids=0 row-size=32B cardinality=71.94K cost=2530
+|  in pipelines: 01(GETNEXT)
+|
+F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
+Per-Instance Resources: mem-estimate=16.84MB mem-reservation=128.00KB thread-reservation=1
+max-parallelism=12 segment-costs=[93383162]
+01:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales ws, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=84.20MB
    predicates: ws.ws_net_paid > CAST(0 AS DECIMAL(3,0)), ws.ws_net_profit > CAST(1 AS DECIMAL(3,0)), ws.ws_quantity > CAST(0 AS INT)
-   runtime filters: RF001[min_max] -> ws_sold_date_sk, RF000[bloom] -> ws_sold_date_sk
+   runtime filters: RF000[bloom] -> ws_sold_date_sk
    stored statistics:
-     table: rows=719.38K size=45.09MB
+     table: rows=719.38K size=84.20MB
+     partitions: 1824/1824 rows=719.38K
      columns: all
-   extrapolated-rows=disabled max-scan-range-rows=644.77K
+   extrapolated-rows=disabled max-scan-range-rows=1.12K
    parquet statistics predicates: ws.ws_net_paid > CAST(0 AS DECIMAL(3,0)), ws.ws_net_profit > CAST(1 AS DECIMAL(3,0)), ws.ws_quantity > CAST(0 AS INT)
    parquet dictionary predicates: ws.ws_net_paid > CAST(0 AS DECIMAL(3,0)), ws.ws_net_profit > CAST(1 AS DECIMAL(3,0)), ws.ws_quantity > CAST(0 AS INT)
-   mem-estimate=16.00MB mem-reservation=16.00MB thread-reservation=0
-   tuple-ids=0 row-size=32B cardinality=71.94K cost=2280633
+   mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+   tuple-ids=0 row-size=32B cardinality=71.94K cost=93380632
    in pipelines: 01(GETNEXT)
 ====
 # TPCDS-Q76
@@ -7144,85 +7145,84 @@ ORDER BY channel,
 LIMIT 100;
 
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=73.69MB Threads=30
-Per-Host Resource Estimates: Memory=315MB
-F15:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
+Max Per-Host Resource Reservation: Memory=62.38MB Threads=41
+Per-Host Resource Estimates: Memory=413MB
+F17: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=[708] cpu-comparison-result=33 [max(1 (self) vs 33 (sum children))]
+|  max-parallelism=1 segment-costs=[708] cpu-comparison-result=60 [max(1 (self) vs 60 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: channel, col_name, d_year, d_qoy, i_category, count(*), sum(ext_sales_price)
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=700
 |
-30:MERGING-EXCHANGE [UNPARTITIONED]
+32:MERGING-EXCHANGE [UNPARTITIONED]
 |  order by: channel ASC, col_name ASC, d_year ASC, d_qoy ASC, i_category ASC
 |  limit: 100
 |  mem-estimate=48.05KB mem-reservation=0B thread-reservation=0
 |  tuple-ids=12 row-size=74B cardinality=100 cost=8
 |  in pipelines: 17(GETNEXT)
 |
-F14:PLAN FRAGMENT [HASH(channel,col_name,d_year,d_qoy,i_category)] hosts=3 instances=6 (adjusted from 48)
+F16:PLAN FRAGMENT [HASH(channel,col_name,d_year,d_qoy,i_category)] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=12.11MB mem-reservation=1.94MB thread-reservation=1
-max-parallelism=6 segment-costs=[499288, 500, 8] cpu-comparison-result=33 [max(6 (self) vs 33 (sum children))]
+max-parallelism=6 segment-costs=[499288, 500, 8] cpu-comparison-result=60 [max(6 (self) vs 60 (sum children))]
 17:TOP-N [LIMIT=100]
 |  order by: channel ASC, col_name ASC, d_year ASC, d_qoy ASC, i_category ASC
 |  mem-estimate=7.22KB mem-reservation=0B thread-reservation=0
 |  tuple-ids=12 row-size=74B cardinality=100 cost=500
-|  in pipelines: 17(GETNEXT), 29(OPEN)
+|  in pipelines: 17(GETNEXT), 31(OPEN)
 |
-29:AGGREGATE [FINALIZE]
+31:AGGREGATE [FINALIZE]
 |  output: count:merge(*), sum:merge(ext_sales_price)
 |  group by: channel, col_name, d_year, d_qoy, i_category
 |  mem-estimate=10.00MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0
 |  tuple-ids=11 row-size=74B cardinality=70.56K cost=493920
-|  in pipelines: 29(GETNEXT), 01(OPEN), 07(OPEN), 11(OPEN)
+|  in pipelines: 31(GETNEXT), 01(OPEN), 06(OPEN), 11(OPEN)
 |
-28:EXCHANGE [HASH(channel,col_name,d_year,d_qoy,i_category)]
+30:EXCHANGE [HASH(channel,col_name,d_year,d_qoy,i_category)]
 |  mem-estimate=2.11MB mem-reservation=0B thread-reservation=0
 |  tuple-ids=11 row-size=74B cardinality=70.56K cost=5368
-|  in pipelines: 01(GETNEXT), 07(GETNEXT), 11(GETNEXT)
+|  in pipelines: 01(GETNEXT), 06(GETNEXT), 11(GETNEXT)
 |
-F13:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
-Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-Per-Instance Resources: mem-estimate=27.83MB mem-reservation=3.25MB thread-reservation=1
-max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33 (self) vs 32 (sum children))]
+F15:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
+Per-Instance Resources: mem-estimate=14.04MB mem-reservation=3.00MB thread-reservation=1
+max-parallelism=6 segment-costs=[3578803, 5368] cpu-comparison-result=60 [max(60 (self) vs 42 (sum children))]
 16:AGGREGATE [STREAMING]
 |  output: count(*), sum(ext_sales_price)
 |  group by: channel, col_name, d_year, d_qoy, i_category
 |  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
 |  tuple-ids=11 row-size=74B cardinality=70.56K cost=961604
-|  in pipelines: 01(GETNEXT), 07(GETNEXT), 11(GETNEXT)
+|  in pipelines: 01(GETNEXT), 06(GETNEXT), 11(GETNEXT)
 |
 00:UNION
 |  mem-estimate=0B mem-reservation=0B thread-reservation=0
 |  tuple-ids=9 row-size=54B cardinality=137.37K cost=2472696
-|  in pipelines: 01(GETNEXT), 07(GETNEXT), 11(GETNEXT)
+|  in pipelines: 01(GETNEXT), 06(GETNEXT), 11(GETNEXT)
 |
 |--15:HASH JOIN [INNER JOIN, PARTITIONED]
-|  |  hash-table-id=03
+|  |  hash-table-id=02
 |  |  hash predicates: cs_item_sk = i_item_sk
 |  |  fk/pk conjuncts: cs_item_sk = i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  |  tuple-ids=6,8,7 row-size=58B cardinality=7.17K cost=7165
 |  |  in pipelines: 11(GETNEXT), 12(OPEN)
 |  |
-|  |--F19:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
+|  |--F20:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=3.41MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=6 segment-costs=[18526]
 |  |  JOIN BUILD
-|  |  |  join-table-id=03 plan-id=04 cohort-id=01
+|  |  |  join-table-id=02 plan-id=03 cohort-id=01
 |  |  |  build expressions: i_item_sk
 |  |  |  runtime filters: RF008[bloom] <- i_item_sk, RF009[min_max] <- i_item_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |
-|  |  27:EXCHANGE [HASH(i_item_sk)]
+|  |  29:EXCHANGE [HASH(i_item_sk)]
 |  |  |  mem-estimate=485.07KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=7 row-size=26B cardinality=18.00K cost=526
 |  |  |  in pipelines: 12(GETNEXT)
 |  |  |
-|  |  F11:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F13:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.70MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50982]
-|  |  12:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  12:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     stored statistics:
 |  |       table: rows=18.00K size=1.73MB
@@ -7232,13 +7232,13 @@ max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33
 |  |     tuple-ids=7 row-size=26B cardinality=18.00K cost=50456
 |  |     in pipelines: 12(GETNEXT)
 |  |
-|  26:EXCHANGE [HASH(cs_item_sk)]
+|  28:EXCHANGE [HASH(cs_item_sk)]
 |  |  mem-estimate=314.63KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=6,8 row-size=32B cardinality=7.17K cost=280
 |  |  in pipelines: 11(GETNEXT)
 |  |
-|  F10:PLAN FRAGMENT [HASH(cs_sold_date_sk)] hosts=3 instances=6 (adjusted from 3)
-|  Per-Instance Resources: mem-estimate=1.05MB mem-reservation=0B thread-reservation=1
+|  F12:PLAN FRAGMENT [HASH(cs_sold_date_sk)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=1.26MB mem-reservation=0B thread-reservation=1
 |  max-parallelism=6 segment-costs=[7613]
 |  14:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=05
@@ -7248,24 +7248,24 @@ max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33
 |  |  tuple-ids=6,8 row-size=32B cardinality=7.17K cost=7165
 |  |  in pipelines: 11(GETNEXT), 13(OPEN)
 |  |
-|  |--F21:PLAN FRAGMENT [HASH(cs_sold_date_sk)] hosts=3 instances=6 (adjusted from 3)
+|  |--F23:PLAN FRAGMENT [HASH(cs_sold_date_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=3.79MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=6 segment-costs=[74191]
 |  |  JOIN BUILD
 |  |  |  join-table-id=05 plan-id=06 cohort-id=01
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF010[bloom] <- d_date_sk, RF011[min_max] <- d_date_sk
+|  |  |  runtime filters: RF010[bloom] <- d_date_sk
 |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=73049
 |  |  |
-|  |  25:EXCHANGE [HASH(d_date_sk)]
+|  |  27:EXCHANGE [HASH(d_date_sk)]
 |  |  |  mem-estimate=872.04KB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=8 row-size=12B cardinality=73.05K cost=1142
 |  |  |  in pipelines: 13(GETNEXT)
 |  |  |
-|  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F11:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.38MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[51999]
-|  |  13:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  13:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
@@ -7275,92 +7275,98 @@ max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33
 |  |     tuple-ids=8 row-size=12B cardinality=73.05K cost=50857
 |  |     in pipelines: 13(GETNEXT)
 |  |
-|  24:EXCHANGE [HASH(cs_sold_date_sk)]
-|  |  mem-estimate=118.65KB mem-reservation=0B thread-reservation=0
+|  26:EXCHANGE [HASH(cs_sold_date_sk)]
+|  |  mem-estimate=334.65KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=6 row-size=20B cardinality=7.17K cost=168
 |  |  in pipelines: 11(GETNEXT)
 |  |
-|  F08:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  F10:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
-|  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=8.00MB thread-reservation=1
-|  max-parallelism=3 segment-costs=[1619872]
-|  11:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|     HDFS partitions=1/1 files=3 size=96.62MB
+|  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[93019872]
+|  11:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|     HDFS partitions=1831/1831 files=1831 size=151.13MB
 |     predicates: cs_ship_addr_sk IS NULL
-|     runtime filters: RF009[min_max] -> cs_item_sk, RF011[min_max] -> cs_sold_date_sk, RF008[bloom] -> cs_item_sk, RF010[bloom] -> cs_sold_date_sk
+|     runtime filters: RF009[min_max] -> cs_item_sk, RF008[bloom] -> cs_item_sk, RF010[bloom] -> cs_sold_date_sk
 |     stored statistics:
-|       table: rows=1.44M size=96.62MB
+|       table: rows=1.44M size=151.13MB
+|       partitions: 1831/1831 rows=1.44M
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|     tuple-ids=6 row-size=20B cardinality=7.17K cost=1619704
+|     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=6 row-size=20B cardinality=7.17K cost=93019704
 |     in pipelines: 11(GETNEXT)
 |
-|--10:HASH JOIN [INNER JOIN, BROADCAST]
+|--10:HASH JOIN [INNER JOIN, PARTITIONED]
 |  |  hash-table-id=01
-|  |  hash predicates: i_item_sk = ws_item_sk
-|  |  fk/pk conjuncts: i_item_sk = ws_item_sk
+|  |  hash predicates: ws_item_sk = i_item_sk
+|  |  fk/pk conjuncts: ws_item_sk = i_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=4,5,3 row-size=58B cardinality=173 cost=18000
-|  |  in pipelines: 07(GETNEXT), 08(OPEN)
+|  |  tuple-ids=3,5,4 row-size=58B cardinality=173 cost=173
+|  |  in pipelines: 06(GETNEXT), 07(OPEN)
 |  |
-|  |--F17:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=4.89MB mem-reservation=4.88MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=3 segment-costs=[194] cpu-comparison-result=4 [max(4 (self) vs 3 (sum children))]
+|  |--F19:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=3.41MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=6 segment-costs=[18526]
 |  |  JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=01
-|  |  |  build expressions: ws_item_sk
-|  |  |  runtime filters: RF004[bloom] <- ws_item_sk, RF005[min_max] <- ws_item_sk
-|  |  |  mem-estimate=3.88MB mem-reservation=3.88MB spill-buffer=64.00KB thread-reservation=0 cost=173
+|  |  |  build expressions: i_item_sk
+|  |  |  runtime filters: RF004[bloom] <- i_item_sk, RF005[min_max] <- i_item_sk
+|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
 |  |  |
-|  |  23:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=5,3 row-size=32B cardinality=173 cost=21
-|  |  |  in pipelines: 08(GETNEXT)
+|  |  25:EXCHANGE [HASH(i_item_sk)]
+|  |  |  mem-estimate=485.07KB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=4 row-size=26B cardinality=18.00K cost=526
+|  |  |  in pipelines: 07(GETNEXT)
 |  |  |
-|  |  F06:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  |  Per-Instance Resources: mem-estimate=16.16MB mem-reservation=512.00KB thread-reservation=1
-|  |  max-parallelism=1 segment-costs=[123913]
-|  |  09:HASH JOIN [INNER JOIN, BROADCAST]
-|  |  |  hash-table-id=02
-|  |  |  hash predicates: d_date_sk = ws_sold_date_sk
-|  |  |  fk/pk conjuncts: none
-|  |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  |  tuple-ids=5,3 row-size=32B cardinality=173 cost=73049
-|  |  |  in pipelines: 08(GETNEXT), 06(OPEN)
+|  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Instance Resources: mem-estimate=16.70MB mem-reservation=256.00KB thread-reservation=1
+|  |  max-parallelism=1 segment-costs=[50982]
+|  |  07:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
+|  |     HDFS partitions=1/1 files=1 size=1.73MB
+|  |     stored statistics:
+|  |       table: rows=18.00K size=1.73MB
+|  |       columns: all
+|  |     extrapolated-rows=disabled max-scan-range-rows=18.00K
+|  |     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+|  |     tuple-ids=4 row-size=26B cardinality=18.00K cost=50456
+|  |     in pipelines: 07(GETNEXT)
+|  |
+|  24:EXCHANGE [HASH(ws_item_sk)]
+|  |  mem-estimate=42.35KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=3,5 row-size=32B cardinality=173 cost=7
+|  |  in pipelines: 06(GETNEXT)
+|  |
+|  F07:PLAN FRAGMENT [HASH(ws_sold_date_sk)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=1009.78KB mem-reservation=0B thread-reservation=1
+|  max-parallelism=6 segment-costs=[185]
+|  09:HASH JOIN [INNER JOIN, PARTITIONED]
+|  |  hash-table-id=04
+|  |  hash predicates: ws_sold_date_sk = d_date_sk
+|  |  fk/pk conjuncts: none
+|  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
+|  |  tuple-ids=3,5 row-size=32B cardinality=173 cost=173
+|  |  in pipelines: 06(GETNEXT), 08(OPEN)
+|  |
+|  |--F22:PLAN FRAGMENT [HASH(ws_sold_date_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=3.79MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=6 segment-costs=[74191]
+|  |  JOIN BUILD
+|  |  |  join-table-id=04 plan-id=05 cohort-id=01
+|  |  |  build expressions: d_date_sk
+|  |  |  runtime filters: RF006[bloom] <- d_date_sk
+|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=73049
 |  |  |
-|  |  |--F18:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  |  max-parallelism=1 segment-costs=[178]
-|  |  |  JOIN BUILD
-|  |  |  |  join-table-id=02 plan-id=03 cohort-id=02
-|  |  |  |  build expressions: ws_sold_date_sk
-|  |  |  |  runtime filters: RF006[bloom] <- ws_sold_date_sk, RF007[min_max] <- ws_sold_date_sk
-|  |  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=173
-|  |  |  |
-|  |  |  22:EXCHANGE [BROADCAST]
-|  |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  |  tuple-ids=3 row-size=20B cardinality=173 cost=5
-|  |  |  |  in pipelines: 06(GETNEXT)
-|  |  |  |
-|  |  |  F07:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=16.09MB mem-reservation=8.00MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[833440]
-|  |  |  06:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|  |  |     HDFS partitions=1/1 files=2 size=45.09MB
-|  |  |     predicates: ws_ship_customer_sk IS NULL
-|  |  |     stored statistics:
-|  |  |       table: rows=719.38K size=45.09MB
-|  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|  |  |     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|  |  |     tuple-ids=3 row-size=20B cardinality=173 cost=833435
-|  |  |     in pipelines: 06(GETNEXT)
+|  |  23:EXCHANGE [HASH(d_date_sk)]
+|  |  |  mem-estimate=872.04KB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=5 row-size=12B cardinality=73.05K cost=1142
+|  |  |  in pipelines: 08(GETNEXT)
 |  |  |
-|  |  08:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  F06:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  Per-Instance Resources: mem-estimate=16.38MB mem-reservation=512.00KB thread-reservation=1
+|  |  max-parallelism=1 segment-costs=[51999]
+|  |  08:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     runtime filters: RF007[min_max] -> d_date_sk, RF006[bloom] -> d_date_sk
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
@@ -7369,16 +7375,27 @@ max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33
 |  |     tuple-ids=5 row-size=12B cardinality=73.05K cost=50857
 |  |     in pipelines: 08(GETNEXT)
 |  |
-|  07:SCAN HDFS [tpcds_parquet.item, RANDOM]
-|     HDFS partitions=1/1 files=1 size=1.73MB
-|     runtime filters: RF005[min_max] -> i_item_sk, RF004[bloom] -> i_item_sk
+|  22:EXCHANGE [HASH(ws_sold_date_sk)]
+|  |  mem-estimate=49.78KB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=3 row-size=20B cardinality=173 cost=5
+|  |  in pipelines: 06(GETNEXT)
+|  |
+|  F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
+|  Per-Instance Resources: mem-estimate=16.56MB mem-reservation=128.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[91933437]
+|  06:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|     predicates: ws_ship_customer_sk IS NULL
+|     runtime filters: RF005[min_max] -> ws_item_sk, RF004[bloom] -> ws_item_sk, RF006[bloom] -> ws_sold_date_sk
 |     stored statistics:
-|       table: rows=18.00K size=1.73MB
+|       table: rows=719.38K size=84.20MB
+|       partitions: 1824/1824 rows=719.38K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=18.00K
-|     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
-|     tuple-ids=4 row-size=26B cardinality=18.00K cost=50456
-|     in pipelines: 07(GETNEXT)
+|     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=3 row-size=20B cardinality=173 cost=91933432
+|     in pipelines: 06(GETNEXT)
 |
 05:HASH JOIN [INNER JOIN, PARTITIONED]
 |  hash-table-id=00
@@ -7388,7 +7405,7 @@ max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33
 |  tuple-ids=0,1,2 row-size=58B cardinality=130.03K cost=130034
 |  in pipelines: 01(GETNEXT), 03(OPEN)
 |
-|--F16:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
+|--F18:PLAN FRAGMENT [RANDOM] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=3.79MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  max-parallelism=6 segment-costs=[74191]
 |  JOIN BUILD
@@ -7405,7 +7422,7 @@ max-parallelism=6 segment-costs=[3647079, 5368] cpu-comparison-result=33 [max(33
 |  F03:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.38MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[51999]
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  03:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
@@ -7424,18 +7441,18 @@ F02:PLAN FRAGMENT [HASH(ss_item_sk)] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=2.37MB mem-reservation=0B thread-reservation=1
 max-parallelism=6 segment-costs=[139926]
 04:HASH JOIN [INNER JOIN, PARTITIONED]
-|  hash-table-id=04
+|  hash-table-id=03
 |  hash predicates: ss_item_sk = i_item_sk
 |  fk/pk conjuncts: ss_item_sk = i_item_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
 |  tuple-ids=0,1 row-size=46B cardinality=130.03K cost=130034
 |  in pipelines: 01(GETNEXT), 02(OPEN)
 |
-|--F20:PLAN FRAGMENT [HASH(ss_item_sk)] hosts=3 instances=6 (adjusted from 48)
+|--F21:PLAN FRAGMENT [HASH(ss_item_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=3.41MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  max-parallelism=6 segment-costs=[18526]
 |  JOIN BUILD
-|  |  join-table-id=04 plan-id=05 cohort-id=01
+|  |  join-table-id=03 plan-id=04 cohort-id=01
 |  |  build expressions: i_item_sk
 |  |  runtime filters: RF002[bloom] <- i_item_sk, RF003[min_max] <- i_item_sk
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=18000
@@ -7448,7 +7465,7 @@ max-parallelism=6 segment-costs=[139926]
 |  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.70MB mem-reservation=256.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50982]
-|  02:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  02:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |     HDFS partitions=1/1 files=1 size=1.73MB
 |     stored statistics:
 |       table: rows=18.00K size=1.73MB
@@ -7467,12 +7484,12 @@ F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
 Per-Instance Resources: mem-estimate=16.56MB mem-reservation=1.00MB thread-reservation=1
 max-parallelism=12 segment-costs=[94139704]
-01:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-   HDFS partitions=1824/1824 files=1824 size=199.44MB
+01:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=199.36MB
    predicates: ss_store_sk IS NULL
    runtime filters: RF003[min_max] -> ss_item_sk, RF000[bloom] -> ss_sold_date_sk, RF002[bloom] -> ss_item_sk
    stored statistics:
-     table: rows=2.88M size=199.44MB
+     table: rows=2.88M size=199.36MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -7558,11 +7575,11 @@ ORDER BY ss_sold_year,
          ratio
 LIMIT 100;
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=257.12MB Threads=29
-Per-Host Resource Estimates: Memory=501MB
+Max Per-Host Resource Reservation: Memory=274.88MB Threads=44
+Per-Host Resource Estimates: Memory=863MB
 F12:PLAN FRAGMENT [UNPARTITIONED] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=4.07MB mem-reservation=4.00MB thread-reservation=1
-|  max-parallelism=1 segment-costs=[1012] cpu-comparison-result=26 [max(1 (self) vs 26 (sum children))]
+|  max-parallelism=1 segment-costs=[1012] cpu-comparison-result=57 [max(1 (self) vs 57 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: ss_sold_year, ss_item_sk, ss_customer_sk, round((ss_qty * 1.00) / (coalesce(ws_qty, 0) + coalesce(cs_qty, 0)), 2), ss_qty, ss_wc, ss_sp, coalesce(ws_qty, 0) + coalesce(cs_qty, 0), coalesce(ws_wc, 0) + coalesce(cs_wc, 0), coalesce(ws_sp, 0) + coalesce(cs_sp, 0)
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=1000
@@ -7574,9 +7591,9 @@ PLAN-ROOT SINK
 |  tuple-ids=15 row-size=112B cardinality=100 cost=12
 |  in pipelines: 20(GETNEXT)
 |
-F03:PLAN FRAGMENT [HASH(d_year,cs_item_sk,cs_bill_customer_sk)] hosts=3 instances=6 (adjusted from 3)
-Per-Instance Resources: mem-estimate=15.42MB mem-reservation=4.75MB thread-reservation=1
-max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [max(6 (self) vs 26 (sum children))]
+F03:PLAN FRAGMENT [HASH(d_year,cs_item_sk,cs_bill_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+Per-Instance Resources: mem-estimate=15.93MB mem-reservation=4.75MB thread-reservation=1
+max-parallelism=6 segment-costs=[1779191, 881992, 12] cpu-comparison-result=57 [max(6 (self) vs 57 (sum children))]
 20:TOP-N [LIMIT=100]
 |  order by: ss_sold_year ASC, ss_item_sk ASC, ss_customer_sk ASC, ss_qty DESC, ss_wc DESC, ss_sp DESC, coalesce(ws_qty, 0) + coalesce(cs_qty, 0) ASC, coalesce(ws_wc, 0) + coalesce(cs_wc, 0) ASC, coalesce(ws_sp, 0) + coalesce(cs_sp, 0) ASC, round((ss_qty * 1.00) / (coalesce(ws_qty, 0) + coalesce(cs_qty, 0)), 2) ASC
 |  materialized: coalesce(ws_qty, 0) + coalesce(cs_qty, 0), coalesce(ws_wc, 0) + coalesce(cs_wc, 0), coalesce(ws_sp, 0) + coalesce(cs_sp, 0), round((ss_qty * 1.00) / (coalesce(ws_qty, 0) + coalesce(cs_qty, 0)), 2)
@@ -7590,12 +7607,12 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  fk/pk conjuncts: cs_bill_customer_sk = ss_customer_sk, cs_item_sk = ss_item_sk
 |  other predicates: (coalesce(sum(ws_quantity), CAST(0 AS BIGINT)) > CAST(0 AS BIGINT) OR coalesce(sum(cs_quantity), CAST(0 AS BIGINT)) > CAST(0 AS BIGINT))
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=13N,8N,3 row-size=168B cardinality=3.00K cost=883887
+|  tuple-ids=13N,8N,3 row-size=168B cardinality=3.00K cost=880992
 |  in pipelines: 24(GETNEXT), 28(OPEN)
 |
-|--F13:PLAN FRAGMENT [HASH(d_year,cs_item_sk,cs_bill_customer_sk)] hosts=3 instances=6 (adjusted from 3)
-|  |  Per-Instance Resources: mem-estimate=5.57MB mem-reservation=4.94MB thread-reservation=1 runtime-filters-memory=3.00MB
-|  |  max-parallelism=6 segment-costs=[9368] cpu-comparison-result=18 [max(6 (self) vs 18 (sum children))]
+|--F13:PLAN FRAGMENT [HASH(d_year,cs_item_sk,cs_bill_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  |  Per-Instance Resources: mem-estimate=5.75MB mem-reservation=4.94MB thread-reservation=1 runtime-filters-memory=3.00MB
+|  |  max-parallelism=6 segment-costs=[9368] cpu-comparison-result=38 [max(6 (self) vs 38 (sum children))]
 |  JOIN BUILD
 |  |  join-table-id=00 plan-id=01 cohort-id=01
 |  |  build expressions: d_year, ss_customer_sk, ss_item_sk
@@ -7603,24 +7620,24 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=9015
 |  |
 |  34:EXCHANGE [HASH(d_year,ss_item_sk,ss_customer_sk)]
-|  |  mem-estimate=644.34KB mem-reservation=0B thread-reservation=0
+|  |  mem-estimate=829.56KB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=8N,3 row-size=112B cardinality=3.00K cost=353
 |  |  in pipelines: 28(GETNEXT)
 |  |
-|  F07:PLAN FRAGMENT [HASH(d_year,ws_item_sk,ws_bill_customer_sk)] hosts=2 instances=4 (adjusted from 2)
-|  Per-Instance Resources: mem-estimate=14.07MB mem-reservation=4.75MB thread-reservation=1
-|  max-parallelism=4 segment-costs=[896697, 444365] cpu-comparison-result=18 [max(4 (self) vs 18 (sum children))]
+|  F07:PLAN FRAGMENT [HASH(d_year,ws_item_sk,ws_bill_customer_sk)] hosts=3 instances=6 (adjusted from 48)
+|  Per-Instance Resources: mem-estimate=13.32MB mem-reservation=2.88MB thread-reservation=1
+|  max-parallelism=6 segment-costs=[891286, 441686] cpu-comparison-result=38 [max(6 (self) vs 38 (sum children))]
 |  18:HASH JOIN [RIGHT OUTER JOIN, PARTITIONED]
 |  |  hash-table-id=01
 |  |  hash predicates: d_year = d_year, ws_bill_customer_sk = ss_customer_sk, ws_item_sk = ss_item_sk
 |  |  fk/pk conjuncts: ws_bill_customer_sk = ss_customer_sk, ws_item_sk = ss_item_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=8N,3 row-size=112B cardinality=3.00K cost=444012
+|  |  tuple-ids=8N,3 row-size=112B cardinality=3.00K cost=441333
 |  |  in pipelines: 28(GETNEXT), 32(OPEN)
 |  |
-|  |--F14:PLAN FRAGMENT [HASH(d_year,ws_item_sk,ws_bill_customer_sk)] hosts=2 instances=4 (adjusted from 2)
+|  |--F14:PLAN FRAGMENT [HASH(d_year,ws_item_sk,ws_bill_customer_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  |  Per-Instance Resources: mem-estimate=5.34MB mem-reservation=4.94MB thread-reservation=1 runtime-filters-memory=3.00MB
-|  |  |  max-parallelism=4 segment-costs=[9192] cpu-comparison-result=12 [max(4 (self) vs 12 (sum children))]
+|  |  |  max-parallelism=6 segment-costs=[9192] cpu-comparison-result=19 [max(6 (self) vs 19 (sum children))]
 |  |  JOIN BUILD
 |  |  |  join-table-id=01 plan-id=02 cohort-id=02
 |  |  |  build expressions: d_year, ss_customer_sk, ss_item_sk
@@ -7634,7 +7651,7 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  |
 |  |  F11:PLAN FRAGMENT [HASH(d_year,ss_item_sk,ss_customer_sk)] hosts=3 instances=6 (adjusted from 48)
 |  |  Per-Instance Resources: mem-estimate=20.70MB mem-reservation=8.50MB thread-reservation=1
-|  |  max-parallelism=6 segment-costs=[3568694, 177] cpu-comparison-result=12 [max(6 (self) vs 12 (sum children))]
+|  |  max-parallelism=6 segment-costs=[3568694, 177] cpu-comparison-result=19 [max(6 (self) vs 19 (sum children))]
 |  |  32:AGGREGATE [FINALIZE]
 |  |  |  output: sum:merge(ss_quantity), sum:merge(ss_wholesale_cost), sum:merge(ss_sales_price)
 |  |  |  group by: d_year, ss_item_sk, ss_customer_sk
@@ -7651,7 +7668,7 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  F08:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  Per-Instance Resources: mem-estimate=27.41MB mem-reservation=9.00MB thread-reservation=1
-|  |  max-parallelism=12 segment-costs=[103476656, 34514] cpu-comparison-result=12 [max(12 (self) vs 8 (sum children))]
+|  |  max-parallelism=12 segment-costs=[103476656, 34514] cpu-comparison-result=19 [max(12 (self) vs 19 (sum children))]
 |  |  05:AGGREGATE [STREAMING]
 |  |  |  output: sum(CAST(ss_quantity AS BIGINT)), sum(ss_wholesale_cost), sum(ss_sales_price)
 |  |  |  group by: d_year, ss_item_sk, ss_customer_sk
@@ -7684,15 +7701,15 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  |  F10:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  |  max-parallelism=1 segment-costs=[123625]
-|  |  |  02:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  |  02:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
+|  |  |     predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
 |  |  |     stored statistics:
 |  |  |       table: rows=73.05K size=2.15MB
 |  |  |       columns: all
 |  |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
-|  |  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
+|  |  |     parquet statistics predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
+|  |  |     parquet dictionary predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
 |  |  |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
 |  |  |     tuple-ids=2 row-size=8B cardinality=373 cost=123620
 |  |  |     in pipelines: 02(GETNEXT)
@@ -7707,7 +7724,7 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  |  in pipelines: 00(GETNEXT), 01(OPEN)
 |  |  |
 |  |  |--F16:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  |  Per-Instance Resources: mem-estimate=72.41MB mem-reservation=68.00MB thread-reservation=1
+|  |  |  |  Per-Instance Resources: mem-estimate=72.62MB mem-reservation=68.00MB thread-reservation=1
 |  |  |  |  max-parallelism=3 segment-costs=[591876]
 |  |  |  JOIN BUILD
 |  |  |  |  join-table-id=03 plan-id=04 cohort-id=03
@@ -7715,28 +7732,29 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  |  |  mem-estimate=68.00MB mem-reservation=68.00MB spill-buffer=1.00MB thread-reservation=0 cost=575028
 |  |  |  |
 |  |  |  29:EXCHANGE [BROADCAST]
-|  |  |  |  mem-estimate=4.41MB mem-reservation=0B thread-reservation=0
+|  |  |  |  mem-estimate=4.62MB mem-reservation=0B thread-reservation=0
 |  |  |  |  tuple-ids=1 row-size=16B cardinality=287.51K cost=16848
 |  |  |  |  in pipelines: 01(GETNEXT)
 |  |  |  |
-|  |  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
-|  |  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=4.00MB thread-reservation=1
-|  |  |  max-parallelism=1 segment-costs=[60109]
-|  |  |  01:SCAN HDFS [tpcds_parquet.store_returns, RANDOM]
-|  |  |     HDFS partitions=1/1 files=1 size=15.43MB
+|  |  |  F09:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
+|  |  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=256.00KB thread-reservation=1
+|  |  |  max-parallelism=12 segment-costs=[100210104]
+|  |  |  01:SCAN HDFS [tpcds_partitioned_parquet_snap.store_returns, RANDOM]
+|  |  |     HDFS partitions=2004/2004 files=2004 size=33.80MB
 |  |  |     stored statistics:
-|  |  |       table: rows=287.51K size=15.43MB
+|  |  |       table: rows=287.51K size=33.80MB
+|  |  |       partitions: 2004/2004 rows=287.51K
 |  |  |       columns: all
-|  |  |     extrapolated-rows=disabled max-scan-range-rows=287.51K
-|  |  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |  |     tuple-ids=1 row-size=16B cardinality=287.51K cost=54493
+|  |  |     extrapolated-rows=disabled max-scan-range-rows=10.01K
+|  |  |     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+|  |  |     tuple-ids=1 row-size=16B cardinality=287.51K cost=100204488
 |  |  |     in pipelines: 01(GETNEXT)
 |  |  |
-|  |  00:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-|  |     HDFS partitions=1824/1824 files=1824 size=200.96MB
+|  |  00:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+|  |     HDFS partitions=1824/1824 files=1824 size=199.36MB
 |  |     runtime filters: RF016[bloom] -> ss_sold_date_sk
 |  |     stored statistics:
-|  |       table: rows=2.88M size=200.96MB
+|  |       table: rows=2.88M size=199.36MB
 |  |       partitions: 1824/1824 rows=2.88M
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -7747,24 +7765,24 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  28:AGGREGATE [FINALIZE]
 |  |  output: sum:merge(ws_quantity), sum:merge(ws_wholesale_cost), sum:merge(ws_sales_price)
 |  |  group by: d_year, ws_item_sk, ws_bill_customer_sk
-|  |  mem-estimate=10.00MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
-|  |  tuple-ids=8 row-size=56B cardinality=148.00K cost=888024
+|  |  mem-estimate=10.00MB mem-reservation=2.88MB spill-buffer=128.00KB thread-reservation=0
+|  |  tuple-ids=8 row-size=56B cardinality=147.11K cost=882666
 |  |  in pipelines: 28(GETNEXT), 06(OPEN)
 |  |
 |  27:EXCHANGE [HASH(d_year,ws_item_sk,ws_bill_customer_sk)]
-|  |  mem-estimate=4.07MB mem-reservation=0B thread-reservation=0
-|  |  tuple-ids=8 row-size=56B cardinality=148.00K cost=8673
+|  |  mem-estimate=3.32MB mem-reservation=0B thread-reservation=0
+|  |  tuple-ids=8 row-size=56B cardinality=147.11K cost=8620
 |  |  in pipelines: 06(GETNEXT)
 |  |
-|  F04:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
+|  F04:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
-|  Per-Instance Resources: mem-estimate=26.94MB mem-reservation=21.00MB thread-reservation=1
-|  max-parallelism=2 segment-costs=[3171467, 8673] cpu-comparison-result=6 [max(2 (self) vs 6 (sum children))]
+|  Per-Instance Resources: mem-estimate=27.41MB mem-reservation=2.12MB thread-reservation=1
+|  max-parallelism=12 segment-costs=[94266106, 8620] cpu-comparison-result=19 [max(12 (self) vs 19 (sum children))]
 |  11:AGGREGATE [STREAMING]
 |  |  output: sum(CAST(ws_quantity AS BIGINT)), sum(ws_wholesale_cost), sum(ws_sales_price)
 |  |  group by: d_year, ws_item_sk, ws_bill_customer_sk
-|  |  mem-estimate=10.00MB mem-reservation=5.00MB spill-buffer=256.00KB thread-reservation=0
-|  |  tuple-ids=8 row-size=56B cardinality=148.00K cost=888024
+|  |  mem-estimate=10.00MB mem-reservation=2.00MB spill-buffer=64.00KB thread-reservation=0
+|  |  tuple-ids=8 row-size=56B cardinality=147.11K cost=882666
 |  |  in pipelines: 06(GETNEXT)
 |  |
 |  10:HASH JOIN [INNER JOIN, BROADCAST]
@@ -7772,37 +7790,37 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  hash predicates: ws_sold_date_sk = d_date_sk
 |  |  fk/pk conjuncts: ws_sold_date_sk = d_date_sk
 |  |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  |  tuple-ids=5,6N,7 row-size=60B cardinality=148.00K cost=719384
+|  |  tuple-ids=5,6N,7 row-size=60B cardinality=147.11K cost=719384
 |  |  in pipelines: 06(GETNEXT), 08(OPEN)
 |  |
-|  |--F17:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=2 segment-costs=[383]
+|  |--F17:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=3 segment-costs=[388]
 |  |  JOIN BUILD
 |  |  |  join-table-id=04 plan-id=05 cohort-id=02
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF014[bloom] <- d_date_sk, RF015[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=373
+|  |  |  runtime filters: RF014[bloom] <- d_date_sk
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=373
 |  |  |
 |  |  26:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=7 row-size=8B cardinality=373 cost=10
+|  |  |  tuple-ids=7 row-size=8B cardinality=373 cost=15
 |  |  |  in pipelines: 08(GETNEXT)
 |  |  |
 |  |  F06:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[123625]
-|  |  08:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  08:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
-|  |     predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
-|  |     runtime filters: RF008[bloom] -> tpcds_parquet.date_dim.d_year
+|  |     predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
+|  |     runtime filters: RF008[bloom] -> tpcds_partitioned_parquet_snap.date_dim.d_year
 |  |     stored statistics:
 |  |       table: rows=73.05K size=2.15MB
 |  |       columns: all
 |  |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|  |     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
-|  |     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
+|  |     parquet statistics predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
+|  |     parquet dictionary predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
 |  |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
 |  |     tuple-ids=7 row-size=8B cardinality=373 cost=123620
 |  |     in pipelines: 08(GETNEXT)
@@ -7816,66 +7834,68 @@ max-parallelism=6 segment-costs=[1785038, 884887, 12] cpu-comparison-result=26 [
 |  |  tuple-ids=5,6N row-size=52B cardinality=719.38K cost=1438768
 |  |  in pipelines: 06(GETNEXT), 07(OPEN)
 |  |
-|  |--F18:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=5.86MB mem-reservation=4.75MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[146330]
+|  |--F18:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=20.33MB mem-reservation=19.00MB thread-reservation=1
+|  |  |  max-parallelism=3 segment-costs=[147732]
 |  |  JOIN BUILD
 |  |  |  join-table-id=05 plan-id=06 cohort-id=02
 |  |  |  build expressions: wr_item_sk, wr_order_number
-|  |  |  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0 cost=143526
+|  |  |  mem-estimate=19.00MB mem-reservation=19.00MB spill-buffer=256.00KB thread-reservation=0 cost=143526
 |  |  |
 |  |  25:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=1.11MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=6 row-size=16B cardinality=71.76K cost=2804
+|  |  |  mem-estimate=1.33MB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=6 row-size=16B cardinality=71.76K cost=4206
 |  |  |  in pipelines: 07(GETNEXT)
 |  |  |
-|  |  F05:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F05:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=1.00MB thread-reservation=1
-|  |  max-parallelism=1 segment-costs=[52524]
-|  |  07:SCAN HDFS [tpcds_parquet.web_returns, RANDOM]
-|  |     HDFS partitions=1/1 files=1 size=5.66MB
-|  |     runtime filters: RF013[min_max] -> tpcds_parquet.web_returns.wr_item_sk, RF010[bloom] -> tpcds_parquet.web_returns.wr_item_sk
+|  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=128.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[105702530]
+|  |  07:SCAN HDFS [tpcds_partitioned_parquet_snap.web_returns, RANDOM]
+|  |     HDFS partitions=2114/2114 files=2114 size=20.82MB
+|  |     runtime filters: RF013[min_max] -> tpcds_partitioned_parquet_snap.web_returns.wr_item_sk, RF010[bloom] -> tpcds_partitioned_parquet_snap.web_returns.wr_item_sk
 |  |     stored statistics:
-|  |       table: rows=71.76K size=5.66MB
+|  |       table: rows=71.76K size=20.82MB
+|  |       partitions: 2114/2114 rows=71.76K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=71.76K
-|  |     mem-estimate=16.00MB mem-reservation=1.00MB thread-reservation=0
-|  |     tuple-ids=6 row-size=16B cardinality=71.76K cost=51122
+|  |     extrapolated-rows=disabled max-scan-range-rows=3.13K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=6 row-size=16B cardinality=71.76K cost=105701128
 |  |     in pipelines: 07(GETNEXT)
 |  |
-|  06:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|     HDFS partitions=1/1 files=2 size=45.09MB
-|     runtime filters: RF012[min_max] -> tpcds_parquet.web_sales.ws_bill_customer_sk, RF013[min_max] -> tpcds_parquet.web_sales.ws_item_sk, RF015[min_max] -> ws_sold_date_sk, RF009[bloom] -> tpcds_parquet.web_sales.ws_bill_customer_sk, RF010[bloom] -> tpcds_parquet.web_sales.ws_item_sk, RF014[bloom] -> ws_sold_date_sk
+|  06:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|     runtime filters: RF012[min_max] -> tpcds_partitioned_parquet_snap.web_sales.ws_bill_customer_sk, RF013[min_max] -> tpcds_partitioned_parquet_snap.web_sales.ws_item_sk, RF009[bloom] -> tpcds_partitioned_parquet_snap.web_sales.ws_bill_customer_sk, RF010[bloom] -> tpcds_partitioned_parquet_snap.web_sales.ws_item_sk, RF014[bloom] -> ws_sold_date_sk
 |     stored statistics:
-|       table: rows=719.38K size=45.09MB
+|       table: rows=719.38K size=84.20MB
+|       partitions: 1824/1824 rows=719.38K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|     mem-estimate=16.00MB mem-reservation=16.00MB thread-reservation=0
-|     tuple-ids=5 row-size=36B cardinality=719.38K cost=125291
+|     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=5 row-size=36B cardinality=719.38K cost=91225288
 |     in pipelines: 06(GETNEXT)
 |
 24:AGGREGATE [FINALIZE]
 |  output: sum:merge(cs_quantity), sum:merge(cs_wholesale_cost), sum:merge(cs_sales_price)
 |  group by: d_year, cs_item_sk, cs_bill_customer_sk
 |  mem-estimate=10.00MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0
-|  tuple-ids=13 row-size=56B cardinality=294.63K cost=1767774
+|  tuple-ids=13 row-size=56B cardinality=293.66K cost=1761984
 |  in pipelines: 24(GETNEXT), 12(OPEN)
 |
 23:EXCHANGE [HASH(d_year,cs_item_sk,cs_bill_customer_sk)]
-|  mem-estimate=5.42MB mem-reservation=0B thread-reservation=0
-|  tuple-ids=13 row-size=56B cardinality=294.63K cost=17264
+|  mem-estimate=5.93MB mem-reservation=0B thread-reservation=0
+|  tuple-ids=13 row-size=56B cardinality=293.66K cost=17207
 |  in pipelines: 12(GETNEXT)
 |
-F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Host Shared Resources: mem-estimate=3.00MB mem-reservation=3.00MB thread-reservation=0 runtime-filters-memory=3.00MB
-Per-Instance Resources: mem-estimate=27.41MB mem-reservation=25.00MB thread-reservation=1
-max-parallelism=3 segment-costs=[6293098, 17264] cpu-comparison-result=8 [max(3 (self) vs 8 (sum children))]
+Per-Instance Resources: mem-estimate=27.41MB mem-reservation=3.25MB thread-reservation=1
+max-parallelism=12 segment-costs=[97687316, 17207] cpu-comparison-result=19 [max(12 (self) vs 19 (sum children))]
 17:AGGREGATE [STREAMING]
 |  output: sum(CAST(cs_quantity AS BIGINT)), sum(cs_wholesale_cost), sum(cs_sales_price)
 |  group by: d_year, cs_item_sk, cs_bill_customer_sk
-|  mem-estimate=10.00MB mem-reservation=9.00MB spill-buffer=512.00KB thread-reservation=0
-|  tuple-ids=13 row-size=56B cardinality=294.63K cost=1767774
+|  mem-estimate=10.00MB mem-reservation=3.00MB spill-buffer=128.00KB thread-reservation=0
+|  tuple-ids=13 row-size=56B cardinality=293.66K cost=1761984
 |  in pipelines: 12(GETNEXT)
 |
 16:HASH JOIN [INNER JOIN, BROADCAST]
@@ -7883,17 +7903,17 @@ max-parallelism=3 segment-costs=[6293098, 17264] cpu-comparison-result=8 [max(3
 |  hash predicates: cs_sold_date_sk = d_date_sk
 |  fk/pk conjuncts: cs_sold_date_sk = d_date_sk
 |  mem-estimate=0B mem-reservation=0B spill-buffer=64.00KB thread-reservation=0
-|  tuple-ids=10,11N,12 row-size=60B cardinality=294.63K cost=1441548
+|  tuple-ids=10,11N,12 row-size=60B cardinality=293.66K cost=1441548
 |  in pipelines: 12(GETNEXT), 14(OPEN)
 |
 |--F19:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  max-parallelism=3 segment-costs=[388]
 |  JOIN BUILD
 |  |  join-table-id=06 plan-id=07 cohort-id=01
 |  |  build expressions: d_date_sk
-|  |  runtime filters: RF006[bloom] <- d_date_sk, RF007[min_max] <- d_date_sk
-|  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=373
+|  |  runtime filters: RF006[bloom] <- d_date_sk
+|  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=373
 |  |
 |  22:EXCHANGE [BROADCAST]
 |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
@@ -7904,16 +7924,16 @@ max-parallelism=3 segment-costs=[6293098, 17264] cpu-comparison-result=8 [max(3
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
 |  Per-Instance Resources: mem-estimate=16.05MB mem-reservation=512.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[123625]
-|  14:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  14:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
-|     predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
-|     runtime filters: RF000[bloom] -> tpcds_parquet.date_dim.d_year
+|     predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
+|     runtime filters: RF000[bloom] -> tpcds_partitioned_parquet_snap.date_dim.d_year
 |     stored statistics:
 |       table: rows=73.05K size=2.15MB
 |       columns: all
 |     extrapolated-rows=disabled max-scan-range-rows=73.05K
-|     parquet statistics predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
-|     parquet dictionary predicates: tpcds_parquet.date_dim.d_year = CAST(2000 AS INT)
+|     parquet statistics predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
+|     parquet dictionary predicates: tpcds_partitioned_parquet_snap.date_dim.d_year = CAST(2000 AS INT)
 |     mem-estimate=16.00MB mem-reservation=512.00KB thread-reservation=0
 |     tuple-ids=12 row-size=8B cardinality=373 cost=123620
 |     in pipelines: 14(GETNEXT)
@@ -7928,42 +7948,44 @@ max-parallelism=3 segment-costs=[6293098, 17264] cpu-comparison-result=8 [max(3
 |  in pipelines: 12(GETNEXT), 13(OPEN)
 |
 |--F20:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=10.72MB mem-reservation=8.50MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=36.43MB mem-reservation=34.00MB thread-reservation=1
 |  |  max-parallelism=3 segment-costs=[296576]
 |  JOIN BUILD
 |  |  join-table-id=07 plan-id=08 cohort-id=01
 |  |  build expressions: cr_item_sk, cr_order_number
-|  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0 cost=288134
+|  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=512.00KB thread-reservation=0 cost=288134
 |  |
 |  21:EXCHANGE [BROADCAST]
-|  |  mem-estimate=2.22MB mem-reservation=0B thread-reservation=0
+|  |  mem-estimate=2.43MB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=11 row-size=16B cardinality=144.07K cost=8442
 |  |  in pipelines: 13(GETNEXT)
 |  |
-|  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  F01:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=2.00MB thread-reservation=1
-|  max-parallelism=1 segment-costs=[55066]
-|  13:SCAN HDFS [tpcds_parquet.catalog_returns, RANDOM]
-|     HDFS partitions=1/1 files=1 size=10.62MB
-|     runtime filters: RF005[min_max] -> tpcds_parquet.catalog_returns.cr_item_sk, RF002[bloom] -> tpcds_parquet.catalog_returns.cr_item_sk
+|  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=32.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[103005062]
+|  13:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_returns, RANDOM]
+|     HDFS partitions=2060/2060 files=2060 size=30.62MB
+|     runtime filters: RF005[min_max] -> tpcds_partitioned_parquet_snap.catalog_returns.cr_item_sk, RF002[bloom] -> tpcds_partitioned_parquet_snap.catalog_returns.cr_item_sk
 |     stored statistics:
-|       table: rows=144.07K size=10.62MB
+|       table: rows=144.07K size=30.62MB
+|       partitions: 2060/2060 rows=144.07K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=144.07K
-|     mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
-|     tuple-ids=11 row-size=16B cardinality=144.07K cost=52252
+|     extrapolated-rows=disabled max-scan-range-rows=139
+|     mem-estimate=16.00MB mem-reservation=32.00KB thread-reservation=0
+|     tuple-ids=11 row-size=16B cardinality=144.07K cost=103002248
 |     in pipelines: 13(GETNEXT)
 |
-12:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-   HDFS partitions=1/1 files=3 size=96.62MB
-   runtime filters: RF004[min_max] -> tpcds_parquet.catalog_sales.cs_bill_customer_sk, RF005[min_max] -> tpcds_parquet.catalog_sales.cs_item_sk, RF007[min_max] -> cs_sold_date_sk, RF001[bloom] -> tpcds_parquet.catalog_sales.cs_bill_customer_sk, RF002[bloom] -> tpcds_parquet.catalog_sales.cs_item_sk, RF006[bloom] -> cs_sold_date_sk
+12:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+   HDFS partitions=1831/1831 files=1831 size=151.13MB
+   runtime filters: RF004[min_max] -> tpcds_partitioned_parquet_snap.catalog_sales.cs_bill_customer_sk, RF005[min_max] -> tpcds_partitioned_parquet_snap.catalog_sales.cs_item_sk, RF001[bloom] -> tpcds_partitioned_parquet_snap.catalog_sales.cs_bill_customer_sk, RF002[bloom] -> tpcds_partitioned_parquet_snap.catalog_sales.cs_item_sk, RF006[bloom] -> cs_sold_date_sk
    stored statistics:
-     table: rows=1.44M size=96.62MB
+     table: rows=1.44M size=151.13MB
+     partitions: 1831/1831 rows=1.44M
      columns: all
-   extrapolated-rows=disabled max-scan-range-rows=650.14K
-   mem-estimate=16.00MB mem-reservation=16.00MB thread-reservation=0
-   tuple-ids=10 row-size=36B cardinality=1.44M cost=200680
+   extrapolated-rows=disabled max-scan-range-rows=7.18K
+   mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+   tuple-ids=10 row-size=36B cardinality=1.44M cost=91600688
    in pipelines: 12(GETNEXT)
 ====
 # TPCDS-Q80
@@ -8061,11 +8083,11 @@ group by web_site_id)
          ,id
  limit 100
 ---- PARALLELPLANS
-Max Per-Host Resource Reservation: Memory=280.12MB Threads=43
-Per-Host Resource Estimates: Memory=851MB
+Max Per-Host Resource Reservation: Memory=335.50MB Threads=58
+Per-Host Resource Estimates: Memory=1.23GB
 F23: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=[508] cpu-comparison-result=55 [max(1 (self) vs 55 (sum children))]
+|  max-parallelism=1 segment-costs=[508] cpu-comparison-result=93 [max(1 (self) vs 93 (sum children))]
 PLAN-ROOT SINK
 |  output exprs: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END, aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(sales) WHEN 27 THEN sum(sales) WHEN 28 THEN sum(sales) END), aggif(valid_tid(26,27,28) IN (26, 27, 28), CASE valid_tid(26,27,28) WHEN 26 THEN sum(`returns`) WHEN 27 THEN sum(`returns`) WHEN 28 THEN sum(`returns`) END), [...]
 |  mem-estimate=4.00MB mem-reservation=4.00MB spill-buffer=2.00MB thread-reservation=0 cost=500
@@ -8079,7 +8101,7 @@ PLAN-ROOT SINK
 |
 F22:PLAN FRAGMENT [HASH(CASE valid_tid(26,27,28) WHEN 26 THEN murmur_hash(channel) WHEN 27 THEN murmur_hash(channel) WHEN 28 THEN murmur_hash(NULL) END,CASE valid_tid(26,27,28) WHEN 26 THEN murmur_hash(id) WHEN 27 THEN murmur_hash(NULL) WHEN 28 THEN murmur_hash(NULL) END)] hosts=3 instances=6 (adjusted from 48)
 Per-Instance Resources: mem-estimate=40.00MB mem-reservation=7.75MB thread-reservation=1
-max-parallelism=6 segment-costs=[60395, 69384, 200, 8] cpu-comparison-result=55 [max(6 (self) vs 55 (sum children))]
+max-parallelism=6 segment-costs=[60395, 69384, 200, 8] cpu-comparison-result=93 [max(6 (self) vs 93 (sum children))]
 39:TOP-N [LIMIT=100]
 |  order by: CASE valid_tid(26,27,28) WHEN 26 THEN channel WHEN 27 THEN channel WHEN 28 THEN NULL END ASC, CASE valid_tid(26,27,28) WHEN 26 THEN id WHEN 27 THEN NULL WHEN 28 THEN NULL END ASC
 |  mem-estimate=7.03KB mem-reservation=0B thread-reservation=0
@@ -8113,8 +8135,8 @@ max-parallelism=6 segment-costs=[60395, 69384, 200, 8] cpu-comparison-result=55
 |  in pipelines: 46(GETNEXT), 53(GETNEXT), 60(GETNEXT)
 |
 F21:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
-Per-Instance Resources: mem-estimate=45.86MB mem-reservation=7.94MB thread-reservation=1
-max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-result=55 [max(12 (self) vs 55 (sum children))]
+Per-Instance Resources: mem-estimate=46.56MB mem-reservation=7.94MB thread-reservation=1
+max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-result=93 [max(12 (self) vs 93 (sum children))]
 37:AGGREGATE [STREAMING]
 |  Class 0
 |    output: sum(sales), sum(returns), sum(profit)
@@ -8146,10 +8168,10 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  tuple-ids=22 row-size=76B cardinality=15 cost=2
 |  |  in pipelines: 25(GETNEXT)
 |  |
-|  F14:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
+|  F14:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=2.00MB mem-reservation=2.00MB thread-reservation=0 runtime-filters-memory=2.00MB
-|  Per-Instance Resources: mem-estimate=29.75MB mem-reservation=18.00MB thread-reservation=1
-|  max-parallelism=2 segment-costs=[2775586, 2] cpu-comparison-result=15 [max(2 (self) vs 15 (sum children))]
+|  Per-Instance Resources: mem-estimate=29.75MB mem-reservation=2.12MB thread-reservation=1
+|  max-parallelism=12 segment-costs=[93875583, 2] cpu-comparison-result=31 [max(12 (self) vs 31 (sum children))]
 |  36:AGGREGATE [STREAMING]
 |  |  output: sum(ws_ext_sales_price), sum(coalesce(wr_return_amt, CAST(0 AS DECIMAL(7,2)))), sum(ws_net_profit - coalesce(wr_net_loss, CAST(0 AS DECIMAL(7,2))))
 |  |  group by: web_site_id
@@ -8165,24 +8187,24 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  tuple-ids=16,17N,20,21,18,19 row-size=147B cardinality=70.03K cost=70034
 |  |  in pipelines: 25(GETNEXT), 28(OPEN)
 |  |
-|  |--F34:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=1.95MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[34]
+|  |--F34:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=7.77MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  max-parallelism=3 segment-costs=[36]
 |  |  JOIN BUILD
 |  |  |  join-table-id=10 plan-id=11 cohort-id=03
 |  |  |  build expressions: web_site_sk
 |  |  |  runtime filters: RF017[min_max] <- web_site_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=30
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=30
 |  |  |
 |  |  58:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=19 row-size=32B cardinality=30 cost=4
+|  |  |  tuple-ids=19 row-size=32B cardinality=30 cost=6
 |  |  |  in pipelines: 28(GETNEXT)
 |  |  |
 |  |  F19:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.14MB mem-reservation=16.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50003]
-|  |  28:SCAN HDFS [tpcds_parquet.web_site, RANDOM]
+|  |  28:SCAN HDFS [tpcds_partitioned_parquet_snap.web_site, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=11.91KB
 |  |     stored statistics:
 |  |       table: rows=30 size=11.91KB
@@ -8200,24 +8222,23 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  tuple-ids=16,17N,20,21,18 row-size=115B cardinality=70.03K cost=70034
 |  |  in pipelines: 25(GETNEXT), 27(OPEN)
 |  |
-|  |--F35:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=2.15MB mem-reservation=1.94MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[7735]
+|  |--F35:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=7.96MB mem-reservation=7.75MB thread-reservation=1
+|  |  |  max-parallelism=3 segment-costs=[7950]
 |  |  JOIN BUILD
 |  |  |  join-table-id=11 plan-id=12 cohort-id=03
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF019[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |
 |  |  57:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=215.48KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=18 row-size=26B cardinality=7.30K cost=430
+|  |  |  tuple-ids=18 row-size=26B cardinality=7.30K cost=645
 |  |  |  in pipelines: 27(GETNEXT)
 |  |  |
 |  |  F18:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.12MB mem-reservation=1.00MB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[198168]
-|  |  27:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  27:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: CAST(d_date AS DATE) <= DATE '1998-09-03', CAST(d_date AS DATE) >= DATE '1998-08-04'
 |  |     stored statistics:
@@ -8238,24 +8259,24 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  tuple-ids=16,17N,20,21 row-size=89B cardinality=70.03K cost=71939
 |  |  in pipelines: 25(GETNEXT), 30(OPEN)
 |  |
-|  |--F36:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=2 segment-costs=[308]
+|  |--F36:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=3 segment-costs=[315]
 |  |  JOIN BUILD
 |  |  |  join-table-id=12 plan-id=13 cohort-id=03
 |  |  |  build expressions: p_promo_sk
 |  |  |  runtime filters: RF020[bloom] <- p_promo_sk, RF021[min_max] <- p_promo_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=294
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=294
 |  |  |
 |  |  56:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=21 row-size=17B cardinality=294 cost=14
+|  |  |  tuple-ids=21 row-size=17B cardinality=294 cost=21
 |  |  |  in pipelines: 30(GETNEXT)
 |  |  |
 |  |  F17:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=32.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50312]
-|  |  30:SCAN HDFS [tpcds_parquet.promotion, RANDOM]
+|  |  30:SCAN HDFS [tpcds_partitioned_parquet_snap.promotion, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=23.30KB
 |  |     predicates: p_channel_tv = 'N'
 |  |     stored statistics:
@@ -8276,24 +8297,24 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  tuple-ids=16,17N,20 row-size=72B cardinality=71.94K cost=719384
 |  |  in pipelines: 25(GETNEXT), 29(OPEN)
 |  |
-|  |--F37:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=2.97MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
-|  |  |  max-parallelism=2 segment-costs=[1858]
+|  |--F37:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=8.79MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  max-parallelism=3 segment-costs=[1887]
 |  |  JOIN BUILD
 |  |  |  join-table-id=13 plan-id=14 cohort-id=03
 |  |  |  build expressions: i_item_sk
 |  |  |  runtime filters: RF022[bloom] <- i_item_sk, RF023[min_max] <- i_item_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=1800
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=1800
 |  |  |
 |  |  55:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=37.09KB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=20 row-size=12B cardinality=1.80K cost=58
+|  |  |  tuple-ids=20 row-size=12B cardinality=1.80K cost=87
 |  |  |  in pipelines: 29(GETNEXT)
 |  |  |
 |  |  F16:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[68240]
-|  |  29:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  29:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     predicates: i_current_price > CAST(50 AS DECIMAL(3,0))
 |  |     stored statistics:
@@ -8314,43 +8335,45 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  tuple-ids=16,17N row-size=60B cardinality=719.38K cost=1438768
 |  |  in pipelines: 25(GETNEXT), 26(OPEN)
 |  |
-|  |--F38:PLAN FRAGMENT [RANDOM] hosts=2 instances=2
-|  |  |  Per-Instance Resources: mem-estimate=6.42MB mem-reservation=4.75MB thread-reservation=1
-|  |  |  max-parallelism=2 segment-costs=[147452]
+|  |--F38:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  |  |  Per-Instance Resources: mem-estimate=20.97MB mem-reservation=19.00MB thread-reservation=1
+|  |  |  max-parallelism=3 segment-costs=[149415]
 |  |  JOIN BUILD
 |  |  |  join-table-id=14 plan-id=15 cohort-id=03
 |  |  |  build expressions: wr_item_sk, wr_order_number
-|  |  |  mem-estimate=4.75MB mem-reservation=4.75MB spill-buffer=256.00KB thread-reservation=0 cost=143526
+|  |  |  mem-estimate=19.00MB mem-reservation=19.00MB spill-buffer=256.00KB thread-reservation=0 cost=143526
 |  |  |
 |  |  54:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=1.67MB mem-reservation=0B thread-reservation=0
-|  |  |  tuple-ids=17 row-size=24B cardinality=71.76K cost=3926
+|  |  |  mem-estimate=1.97MB mem-reservation=0B thread-reservation=0
+|  |  |  tuple-ids=17 row-size=24B cardinality=71.76K cost=5889
 |  |  |  in pipelines: 26(GETNEXT)
 |  |  |
-|  |  F15:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F15:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  |  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=2.00MB thread-reservation=1
-|  |  max-parallelism=1 segment-costs=[53645]
-|  |  26:SCAN HDFS [tpcds_parquet.web_returns, RANDOM]
-|  |     HDFS partitions=1/1 files=1 size=5.66MB
-|  |     runtime filters: RF023[min_max] -> tpcds_parquet.web_returns.wr_item_sk, RF022[bloom] -> tpcds_parquet.web_returns.wr_item_sk
+|  |  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=128.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[105703651]
+|  |  26:SCAN HDFS [tpcds_partitioned_parquet_snap.web_returns, RANDOM]
+|  |     HDFS partitions=2114/2114 files=2114 size=20.82MB
+|  |     runtime filters: RF023[min_max] -> tpcds_partitioned_parquet_snap.web_returns.wr_item_sk, RF022[bloom] -> tpcds_partitioned_parquet_snap.web_returns.wr_item_sk
 |  |     stored statistics:
-|  |       table: rows=71.76K size=5.66MB
+|  |       table: rows=71.76K size=20.82MB
+|  |       partitions: 2114/2114 rows=71.76K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=71.76K
-|  |     mem-estimate=16.00MB mem-reservation=2.00MB thread-reservation=0
-|  |     tuple-ids=17 row-size=24B cardinality=71.76K cost=51682
+|  |     extrapolated-rows=disabled max-scan-range-rows=3.13K
+|  |     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|  |     tuple-ids=17 row-size=24B cardinality=71.76K cost=105701688
 |  |     in pipelines: 26(GETNEXT)
 |  |
-|  25:SCAN HDFS [tpcds_parquet.web_sales, RANDOM]
-|     HDFS partitions=1/1 files=2 size=45.09MB
-|     runtime filters: RF023[min_max] -> ws_item_sk, RF021[min_max] -> ws_promo_sk, RF017[min_max] -> ws_web_site_sk, RF019[min_max] -> ws_sold_date_sk, RF022[bloom] -> ws_item_sk, RF020[bloom] -> ws_promo_sk
+|  25:SCAN HDFS [tpcds_partitioned_parquet_snap.web_sales, RANDOM]
+|     HDFS partitions=1824/1824 files=1824 size=84.20MB
+|     runtime filters: RF023[min_max] -> ws_item_sk, RF021[min_max] -> ws_promo_sk, RF017[min_max] -> ws_web_site_sk, RF022[bloom] -> ws_item_sk, RF020[bloom] -> ws_promo_sk
 |     stored statistics:
-|       table: rows=719.38K size=45.09MB
+|       table: rows=719.38K size=84.20MB
+|       partitions: 1824/1824 rows=719.38K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=644.77K
-|     mem-estimate=16.00MB mem-reservation=16.00MB thread-reservation=0
-|     tuple-ids=16 row-size=36B cardinality=719.38K cost=125291
+|     extrapolated-rows=disabled max-scan-range-rows=1.12K
+|     mem-estimate=16.00MB mem-reservation=128.00KB thread-reservation=0
+|     tuple-ids=16 row-size=36B cardinality=719.38K cost=91225288
 |     in pipelines: 25(GETNEXT)
 |
 |--53:AGGREGATE [FINALIZE]
@@ -8361,14 +8384,14 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  in pipelines: 53(GETNEXT), 13(OPEN)
 |  |
 |  52:EXCHANGE [HASH(cp_catalog_page_id)]
-|  |  mem-estimate=525.47KB mem-reservation=0B thread-reservation=0
+|  |  mem-estimate=1.22MB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=14 row-size=76B cardinality=11.54K cost=902
 |  |  in pipelines: 13(GETNEXT)
 |  |
-|  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
+|  F07:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=0 runtime-filters-memory=4.00MB
-|  Per-Instance Resources: mem-estimate=29.75MB mem-reservation=18.00MB thread-reservation=1
-|  max-parallelism=3 segment-costs=[5511501, 902] cpu-comparison-result=20 [max(3 (self) vs 20 (sum children))]
+|  Per-Instance Resources: mem-estimate=29.75MB mem-reservation=2.25MB thread-reservation=1
+|  max-parallelism=12 segment-costs=[96911509, 902] cpu-comparison-result=31 [max(12 (self) vs 31 (sum children))]
 |  24:AGGREGATE [STREAMING]
 |  |  output: sum(cs_ext_sales_price), sum(coalesce(cr_return_amount, CAST(0 AS DECIMAL(7,2)))), sum(cs_net_profit - coalesce(cr_net_loss, CAST(0 AS DECIMAL(7,2))))
 |  |  group by: cp_catalog_page_id
@@ -8385,13 +8408,13 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  in pipelines: 13(GETNEXT), 16(OPEN)
 |  |
 |  |--F29:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=3.33MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=9.14MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[12954]
 |  |  JOIN BUILD
 |  |  |  join-table-id=05 plan-id=06 cohort-id=02
 |  |  |  build expressions: cp_catalog_page_sk
 |  |  |  runtime filters: RF008[bloom] <- cp_catalog_page_sk, RF009[min_max] <- cp_catalog_page_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=11718
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=11718
 |  |  |
 |  |  51:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=402.19KB mem-reservation=0B thread-reservation=0
@@ -8401,7 +8424,7 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  F12:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.14MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50779]
-|  |  16:SCAN HDFS [tpcds_parquet.catalog_page, RANDOM]
+|  |  16:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_page, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=739.17KB
 |  |     stored statistics:
 |  |       table: rows=11.72K size=739.17KB
@@ -8420,13 +8443,13 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  in pipelines: 13(GETNEXT), 15(OPEN)
 |  |
 |  |--F30:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=3.15MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=8.96MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[7950]
 |  |  JOIN BUILD
 |  |  |  join-table-id=06 plan-id=07 cohort-id=02
 |  |  |  build expressions: d_date_sk
-|  |  |  runtime filters: RF010[bloom] <- d_date_sk, RF011[min_max] <- d_date_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=7305
+|  |  |  runtime filters: RF010[bloom] <- d_date_sk
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=7305
 |  |  |
 |  |  50:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=215.48KB mem-reservation=0B thread-reservation=0
@@ -8436,7 +8459,7 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  F11:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.12MB mem-reservation=1.00MB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[198168]
-|  |  15:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  |  15:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=2.15MB
 |  |     predicates: CAST(d_date AS DATE) <= DATE '1998-09-03', CAST(d_date AS DATE) >= DATE '1998-08-04'
 |  |     stored statistics:
@@ -8458,13 +8481,13 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  in pipelines: 13(GETNEXT), 18(OPEN)
 |  |
 |  |--F31:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.95MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=8.77MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[315]
 |  |  JOIN BUILD
 |  |  |  join-table-id=07 plan-id=08 cohort-id=02
 |  |  |  build expressions: p_promo_sk
 |  |  |  runtime filters: RF012[bloom] <- p_promo_sk, RF013[min_max] <- p_promo_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=294
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=294
 |  |  |
 |  |  49:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=16.00KB mem-reservation=0B thread-reservation=0
@@ -8474,7 +8497,7 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  F10:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=32.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[50312]
-|  |  18:SCAN HDFS [tpcds_parquet.promotion, RANDOM]
+|  |  18:SCAN HDFS [tpcds_partitioned_parquet_snap.promotion, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=23.30KB
 |  |     predicates: p_channel_tv = 'N'
 |  |     stored statistics:
@@ -8496,13 +8519,13 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  in pipelines: 13(GETNEXT), 17(OPEN)
 |  |
 |  |--F32:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=2.97MB mem-reservation=2.94MB thread-reservation=1 runtime-filters-memory=1.00MB
+|  |  |  Per-Instance Resources: mem-estimate=8.79MB mem-reservation=8.75MB thread-reservation=1 runtime-filters-memory=1.00MB
 |  |  |  max-parallelism=3 segment-costs=[1887]
 |  |  JOIN BUILD
 |  |  |  join-table-id=08 plan-id=09 cohort-id=02
 |  |  |  build expressions: i_item_sk
 |  |  |  runtime filters: RF014[bloom] <- i_item_sk, RF015[min_max] <- i_item_sk
-|  |  |  mem-estimate=1.94MB mem-reservation=1.94MB spill-buffer=64.00KB thread-reservation=0 cost=1800
+|  |  |  mem-estimate=7.75MB mem-reservation=7.75MB spill-buffer=64.00KB thread-reservation=0 cost=1800
 |  |  |
 |  |  48:EXCHANGE [BROADCAST]
 |  |  |  mem-estimate=37.09KB mem-reservation=0B thread-reservation=0
@@ -8512,7 +8535,7 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  F09:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=256.00KB thread-reservation=1
 |  |  max-parallelism=1 segment-costs=[68240]
-|  |  17:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  |  17:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |  |     HDFS partitions=1/1 files=1 size=1.73MB
 |  |     predicates: i_current_price > CAST(50 AS DECIMAL(3,0))
 |  |     stored statistics:
@@ -8534,42 +8557,44 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 |  |  in pipelines: 13(GETNEXT), 14(OPEN)
 |  |
 |  |--F33:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  |  Per-Instance Resources: mem-estimate=11.82MB mem-reservation=8.50MB thread-reservation=1
+|  |  |  Per-Instance Resources: mem-estimate=37.63MB mem-reservation=34.00MB thread-reservation=1
 |  |  |  max-parallelism=3 segment-costs=[299954]
 |  |  JOIN BUILD
 |  |  |  join-table-id=09 plan-id=10 cohort-id=02
 |  |  |  build expressions: cr_item_sk, cr_order_number
-|  |  |  mem-estimate=8.50MB mem-reservation=8.50MB spill-buffer=512.00KB thread-reservation=0 cost=288134
+|  |  |  mem-estimate=34.00MB mem-reservation=34.00MB spill-buffer=512.00KB thread-reservation=0 cost=288134
 |  |  |
 |  |  47:EXCHANGE [BROADCAST]
-|  |  |  mem-estimate=3.32MB mem-reservation=0B thread-reservation=0
+|  |  |  mem-estimate=3.63MB mem-reservation=0B thread-reservation=0
 |  |  |  tuple-ids=9 row-size=24B cardinality=144.07K cost=11820
 |  |  |  in pipelines: 14(GETNEXT)
 |  |  |
-|  |  F08:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  |  F08:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  |  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=4.00MB thread-reservation=1
-|  |  max-parallelism=1 segment-costs=[57317]
-|  |  14:SCAN HDFS [tpcds_parquet.catalog_returns, RANDOM]
-|  |     HDFS partitions=1/1 files=1 size=10.62MB
-|  |     runtime filters: RF015[min_max] -> tpcds_parquet.catalog_returns.cr_item_sk, RF014[bloom] -> tpcds_parquet.catalog_returns.cr_item_sk
+|  |  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=32.00KB thread-reservation=1
+|  |  max-parallelism=12 segment-costs=[103007316]
+|  |  14:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_returns, RANDOM]
+|  |     HDFS partitions=2060/2060 files=2060 size=30.62MB
+|  |     runtime filters: RF015[min_max] -> tpcds_partitioned_parquet_snap.catalog_returns.cr_item_sk, RF014[bloom] -> tpcds_partitioned_parquet_snap.catalog_returns.cr_item_sk
 |  |     stored statistics:
-|  |       table: rows=144.07K size=10.62MB
+|  |       table: rows=144.07K size=30.62MB
+|  |       partitions: 2060/2060 rows=144.07K
 |  |       columns: all
-|  |     extrapolated-rows=disabled max-scan-range-rows=144.07K
-|  |     mem-estimate=16.00MB mem-reservation=4.00MB thread-reservation=0
-|  |     tuple-ids=9 row-size=24B cardinality=144.07K cost=53377
+|  |     extrapolated-rows=disabled max-scan-range-rows=139
+|  |     mem-estimate=16.00MB mem-reservation=32.00KB thread-reservation=0
+|  |     tuple-ids=9 row-size=24B cardinality=144.07K cost=103003376
 |  |     in pipelines: 14(GETNEXT)
 |  |
-|  13:SCAN HDFS [tpcds_parquet.catalog_sales, RANDOM]
-|     HDFS partitions=1/1 files=3 size=96.62MB
-|     runtime filters: RF015[min_max] -> cs_item_sk, RF013[min_max] -> cs_promo_sk, RF009[min_max] -> cs_catalog_page_sk, RF011[min_max] -> cs_sold_date_sk, RF014[bloom] -> cs_item_sk, RF012[bloom] -> cs_promo_sk, RF008[bloom] -> cs_catalog_page_sk, RF010[bloom] -> cs_sold_date_sk
+|  13:SCAN HDFS [tpcds_partitioned_parquet_snap.catalog_sales, RANDOM]
+|     HDFS partitions=1831/1831 files=1831 size=151.13MB
+|     runtime filters: RF015[min_max] -> cs_item_sk, RF013[min_max] -> cs_promo_sk, RF009[min_max] -> cs_catalog_page_sk, RF014[bloom] -> cs_item_sk, RF012[bloom] -> cs_promo_sk, RF008[bloom] -> cs_catalog_page_sk, RF010[bloom] -> cs_sold_date_sk
 |     stored statistics:
-|       table: rows=1.44M size=96.62MB
+|       table: rows=1.44M size=151.13MB
+|       partitions: 1831/1831 rows=1.44M
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=650.14K
-|     mem-estimate=16.00MB mem-reservation=16.00MB thread-reservation=0
-|     tuple-ids=8 row-size=36B cardinality=1.44M cost=200680
+|     extrapolated-rows=disabled max-scan-range-rows=7.18K
+|     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+|     tuple-ids=8 row-size=36B cardinality=1.44M cost=91600688
 |     in pipelines: 13(GETNEXT)
 |
 46:AGGREGATE [FINALIZE]
@@ -8587,7 +8612,7 @@ max-parallelism=12 segment-costs=[25, 47058, 62, 346800, 2575] cpu-comparison-re
 F00:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 Per-Host Shared Resources: mem-estimate=4.00MB mem-reservation=4.00MB thread-reservation=0 runtime-filters-memory=4.00MB
 Per-Instance Resources: mem-estimate=29.75MB mem-reservation=6.00MB thread-reservation=1
-max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12 (self) vs 20 (sum children))]
+max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=31 [max(12 (self) vs 31 (sum children))]
 12:AGGREGATE [STREAMING]
 |  output: sum(ss_ext_sales_price), sum(coalesce(sr_return_amt, CAST(0 AS DECIMAL(7,2)))), sum(ss_net_profit - coalesce(sr_net_loss, CAST(0 AS DECIMAL(7,2))))
 |  group by: s_store_id
@@ -8620,7 +8645,7 @@ max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12
 |  F05:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.14MB mem-reservation=16.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50002]
-|  04:SCAN HDFS [tpcds_parquet.store, RANDOM]
+|  04:SCAN HDFS [tpcds_partitioned_parquet_snap.store, RANDOM]
 |     HDFS partitions=1/1 files=1 size=9.93KB
 |     stored statistics:
 |       table: rows=12 size=9.93KB
@@ -8655,7 +8680,7 @@ max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12
 |  F04:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.12MB mem-reservation=1.00MB thread-reservation=1
 |  max-parallelism=1 segment-costs=[198168]
-|  03:SCAN HDFS [tpcds_parquet.date_dim, RANDOM]
+|  03:SCAN HDFS [tpcds_partitioned_parquet_snap.date_dim, RANDOM]
 |     HDFS partitions=1/1 files=1 size=2.15MB
 |     predicates: CAST(d_date AS DATE) <= DATE '1998-09-03', CAST(d_date AS DATE) >= DATE '1998-08-04'
 |     stored statistics:
@@ -8693,7 +8718,7 @@ max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12
 |  F03:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.08MB mem-reservation=32.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[50312]
-|  06:SCAN HDFS [tpcds_parquet.promotion, RANDOM]
+|  06:SCAN HDFS [tpcds_partitioned_parquet_snap.promotion, RANDOM]
 |     HDFS partitions=1/1 files=1 size=23.30KB
 |     predicates: p_channel_tv = 'N'
 |     stored statistics:
@@ -8731,7 +8756,7 @@ max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12
 |  F02:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
 |  Per-Instance Resources: mem-estimate=16.06MB mem-reservation=256.00KB thread-reservation=1
 |  max-parallelism=1 segment-costs=[68240]
-|  05:SCAN HDFS [tpcds_parquet.item, RANDOM]
+|  05:SCAN HDFS [tpcds_partitioned_parquet_snap.item, RANDOM]
 |     HDFS partitions=1/1 files=1 size=1.73MB
 |     predicates: i_current_price > CAST(50 AS DECIMAL(3,0))
 |     stored statistics:
@@ -8753,7 +8778,7 @@ max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12
 |  in pipelines: 01(GETNEXT), 02(OPEN)
 |
 |--F28:PLAN FRAGMENT [RANDOM] hosts=3 instances=3
-|  |  Per-Instance Resources: mem-estimate=74.61MB mem-reservation=68.00MB thread-reservation=1
+|  |  Per-Instance Resources: mem-estimate=74.91MB mem-reservation=68.00MB thread-reservation=1
 |  |  max-parallelism=3 segment-costs=[598614]
 |  JOIN BUILD
 |  |  join-table-id=04 plan-id=05 cohort-id=01
@@ -8761,30 +8786,31 @@ max-parallelism=12 segment-costs=[101912983, 1] cpu-comparison-result=20 [max(12
 |  |  mem-estimate=68.00MB mem-reservation=68.00MB spill-buffer=1.00MB thread-reservation=0 cost=575028
 |  |
 |  40:EXCHANGE [BROADCAST]
-|  |  mem-estimate=6.61MB mem-reservation=0B thread-reservation=0
+|  |  mem-estimate=6.91MB mem-reservation=0B thread-reservation=0
 |  |  tuple-ids=1 row-size=24B cardinality=287.51K cost=23586
 |  |  in pipelines: 02(GETNEXT)
 |  |
-|  F01:PLAN FRAGMENT [RANDOM] hosts=1 instances=1
+|  F01:PLAN FRAGMENT [RANDOM] hosts=3 instances=12 (adjusted from 48)
 |  Per-Host Shared Resources: mem-estimate=1.00MB mem-reservation=1.00MB thread-reservation=0 runtime-filters-memory=1.00MB
-|  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=8.00MB thread-reservation=1
-|  max-parallelism=1 segment-costs=[64601]
-|  02:SCAN HDFS [tpcds_parquet.store_returns, RANDOM]
-|     HDFS partitions=1/1 files=1 size=15.43MB
-|     runtime filters: RF007[min_max] -> tpcds_parquet.store_returns.sr_item_sk, RF006[bloom] -> tpcds_parquet.store_returns.sr_item_sk
+|  Per-Instance Resources: mem-estimate=16.11MB mem-reservation=256.00KB thread-reservation=1
+|  max-parallelism=12 segment-costs=[100214598]
+|  02:SCAN HDFS [tpcds_partitioned_parquet_snap.store_returns, RANDOM]
+|     HDFS partitions=2004/2004 files=2004 size=33.80MB
+|     runtime filters: RF007[min_max] -> tpcds_partitioned_parquet_snap.store_returns.sr_item_sk, RF006[bloom] -> tpcds_partitioned_parquet_snap.store_returns.sr_item_sk
 |     stored statistics:
-|       table: rows=287.51K size=15.43MB
+|       table: rows=287.51K size=33.80MB
+|       partitions: 2004/2004 rows=287.51K
 |       columns: all
-|     extrapolated-rows=disabled max-scan-range-rows=287.51K
-|     mem-estimate=16.00MB mem-reservation=8.00MB thread-reservation=0
-|     tuple-ids=1 row-size=24B cardinality=287.51K cost=56739
+|     extrapolated-rows=disabled max-scan-range-rows=10.01K
+|     mem-estimate=16.00MB mem-reservation=256.00KB thread-reservation=0
+|     tuple-ids=1 row-size=24B cardinality=287.51K cost=100206736
 |     in pipelines: 02(GETNEXT)
 |
-01:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
-   HDFS partitions=1824/1824 files=1824 size=200.96MB
+01:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
+   HDFS partitions=1824/1824 files=1824 size=199.36MB
    runtime filters: RF007[min_max] -> ss_item_sk, RF005[min_max] -> ss_promo_sk, RF001[min_max] -> ss_store_sk, RF006[bloom] -> ss_item_sk, RF004[bloom] -> ss_promo_sk, RF000[bloom] -> ss_store_sk, RF002[bloom] -> ss_sold_date_sk
    stored statistics:
-     table: rows=2.88M size=200.96MB
+     table: rows=2.88M size=199.36MB
      partitions: 1824/1824 rows=2.88M
      columns: all
    extrapolated-rows=disabled max-scan-range-rows=130.09K
@@ -8891,7 +8917,7 @@ max-parallelism=21 segment-costs=[194962048, 2276043]
 |  tuple-ids=1N,2N,3N,4N,5N,6N row-size=168B cardinality=12.14M cost=103694544
 |  in pipelines: 00(GETNEXT)
 |
-00:SCAN HDFS [tpcds_parquet.store_sales, RANDOM]
+00:SCAN HDFS [tpcds_partitioned_parquet_snap.store_sales, RANDOM]
    HDFS partitions=1824/1824 files=1824 size=199.46MB
    stored statistics:
      table: rows=2.88M size=199.46MB
diff --git a/testdata/workloads/tpcds_partitioned/tpcds_partitioned_core.csv b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_core.csv
new file mode 100644
index 000000000..c168d4f88
--- /dev/null
+++ b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_core.csv
@@ -0,0 +1 @@
+file_format: parquet, dataset: tpcds_partitioned, compression_codec: snap, compression_type: block
diff --git a/testdata/workloads/tpcds_partitioned/tpcds_partitioned_dimensions.csv b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_dimensions.csv
new file mode 100644
index 000000000..8c16d8bc4
--- /dev/null
+++ b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_dimensions.csv
@@ -0,0 +1,4 @@
+file_format: parquet
+dataset: tpcds_partitioned
+compression_codec: snap
+compression_type: block
diff --git a/testdata/workloads/tpcds_partitioned/tpcds_partitioned_exhaustive.csv b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_exhaustive.csv
new file mode 100644
index 000000000..c168d4f88
--- /dev/null
+++ b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_exhaustive.csv
@@ -0,0 +1 @@
+file_format: parquet, dataset: tpcds_partitioned, compression_codec: snap, compression_type: block
diff --git a/testdata/workloads/tpcds_partitioned/tpcds_partitioned_pairwise.csv b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_pairwise.csv
new file mode 100644
index 000000000..c168d4f88
--- /dev/null
+++ b/testdata/workloads/tpcds_partitioned/tpcds_partitioned_pairwise.csv
@@ -0,0 +1 @@
+file_format: parquet, dataset: tpcds_partitioned, compression_codec: snap, compression_type: block