Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
7f13fc4
Materialized CTE (Shared Scan) OR predicate pushdown.
avamingli Aug 7, 2025
5493025
Insert Result node atop CTE producer for column projection optimization
avamingli Oct 27, 2025
d2bd38d
Positive side effect(Direct Dispatch) of push down Shared Scan quals.
avamingli Nov 5, 2025
4f341ff
Fix conflicts from main branch
avamingli Jan 26, 2026
a1cd655
Make gp_eager_two_phase_agg GUC visible
avamingli Nov 18, 2025
a609866
Add dynamic Shared Scan cost-based decision
avamingli Nov 18, 2025
abbb946
Implement Shared Scan column pruning.
avamingli Nov 28, 2025
4b785b4
Fix: re-create the hashtable if hashtable memory exceeds the limitation
Nov 24, 2025
065983a
Fix NULL check for CTE attribute map in setrefs
avamingli Dec 5, 2025
33ad36f
Enable Shared Scan inside InitPlan
avamingli Dec 9, 2025
7d55259
Fix Material node cost estimation in subplan decoration
avamingli Dec 12, 2025
086ee94
Fix Shared Scan producer detection in setrefs
avamingli Dec 13, 2025
30dcf49
Add pre-deduplication for UNION/INTERSECT/EXCEPT subqueries
avamingli Dec 14, 2025
070d5a9
Add cost damping for streaming hash aggregation
avamingli Dec 15, 2025
4db66e8
Add inner join selectivity damping factor
avamingli Dec 17, 2025
213d0e4
Support sublink to join conversion for nested arithmetic expressions
avamingli Dec 19, 2025
f40e3dd
Allow recursive Shared Scan in subqueries
avamingli Dec 19, 2025
6904a68
Implement parallel GroupingSets execution
avamingli Dec 21, 2025
4875e52
Multiphase aggregation for window functions in planner.
avamingli Dec 22, 2025
dfee970
Enable runtime filter for parallel-oblivious hash join.
avamingli Dec 25, 2025
7fd1fb6
Implement parallel multi-phase GROUP BY aggregation
avamingli Dec 25, 2025
869062d
Fix runtime filter parallel mode detection
avamingli Dec 25, 2025
6d165ac
Enable parallel Shared Scan (CTE) execution
avamingli Dec 25, 2025
8f61628
Enable streaming for parallel partial hash aggregation
avamingli Dec 25, 2025
da14ce7
Enable runtime filter for parallel-aware hash join
avamingli Dec 26, 2025
f0257ef
Add eager SubPlan conversion for complex queries
avamingli Dec 27, 2025
aaa4117
Skip parallel planning for single-row relations
avamingli Dec 29, 2025
b2ae09e
Enable two-phase parallel aggregation without GROUP BY
avamingli Dec 29, 2025
100c62a
Enable parallel INTERSECT and EXCEPT execution
avamingli Dec 30, 2025
37fba30
Add parallel paths for Shared Scan and CTE relations
avamingli Dec 30, 2025
bdb376a
Enable parallel hash join with unique inner path
avamingli Dec 30, 2025
22b88a7
Fix CTE partial path handling for shared vs non-shared
avamingli Dec 30, 2025
6fca297
Enable parallel hash join with unique outer path
avamingli Dec 30, 2025
df0560e
Add damping factor for dedup semi join cost estimation
avamingli Dec 30, 2025
05dc36b
Fix streaming hashagg mem limit.
avamingli Dec 31, 2025
d5ed229
Update cbdb_dedup_semi_damping_factor default value
avamingli Dec 31, 2025
5b0ab8e
Fix CTE parallel safety determination
avamingli Dec 31, 2025
f9ca167
Fix sublink parallel safety checking
avamingli Dec 31, 2025
625cb7b
Handle NULL unique path in dedup semi join
avamingli Dec 31, 2025
fbeb772
Fix eager SubPlan crash on Values relations
avamingli Jan 1, 2026
15daaf4
Exclude writable operations from eager SubPlan conversion
avamingli Jan 1, 2026
1291276
Fix crash when subquery with CTE uses Shared Scan
avamingli Jan 1, 2026
a611575
Fix SetOp handling when subquery has CTE
avamingli Jan 1, 2026
c549421
Preserve recursive CTE and volatile function behavior
avamingli Jan 1, 2026
9ae7310
Respect user CTE materialization hints
avamingli Jan 1, 2026
85b7a05
Add GUC to control SetOp pre-deduplication
avamingli Jan 1, 2026
c01798a
Add GUC to control dynamic Shared Scan.
avamingli Jan 1, 2026
1e92721
Fix failed cases (Up to a point)
avamingli Jan 1, 2026
07662b3
Fix EXPLAIN GUC display for non-EXPLAIN GUCs
avamingli Jan 1, 2026
a2711ef
Fix Shared Scan target list varattno adjustment
avamingli Jan 2, 2026
222eb5e
Use gp_use_streaming_hashagg for all first-stage aggregation
avamingli Jan 2, 2026
31c97bf
Fix ShareInputScan target list construction
avamingli Jan 2, 2026
51b3f68
Fix logic for correcting Shared Scan target list varattno
avamingli Jan 3, 2026
0773bee
Use producer's locus and pathkeys for all CTE references
avamingli Jan 3, 2026
fdd9e8f
Fix assertion for subquery unused column handling
avamingli Jan 3, 2026
85ac701
Fix multi-window aggregate incorrect results
avamingli Jan 3, 2026
acfdd49
Refactor ShareInputScan identification
avamingli Jan 6, 2026
058013b
Rethink ShareInputScan execution coordination
avamingli Jan 6, 2026
6d19cd7
Fix Shared Scan subplan reference handling
avamingli Jan 7, 2026
1b4249e
Fix alien Share Input Scan execution error
avamingli Jan 7, 2026
80402cb
Exclude ModifyTable from eager SubPlan transformation
avamingli Jan 7, 2026
d331d05
Skip eager SubPlan when already on QD
avamingli Jan 7, 2026
b2cf7a4
Handle whole-row references in Shared Scan projection
avamingli Jan 7, 2026
8379244
Disable eager SubPlan for Entry locus InitPlan
avamingli Jan 8, 2026
3393ddb
Disable inline CTE for volatile functions
avamingli Jan 9, 2026
4662a8c
Fix compiler warnings
avamingli Jan 9, 2026
d8c9816
Remove unnecessary nodes from SharedScan subquery
avamingli Jan 9, 2026
b7796a6
Fix olap_plans case.
avamingli Jan 9, 2026
ac74dc1
Disable Shared Scan when QE generates plan
avamingli Jan 9, 2026
1ac4ece
Fix cases (up to a point 2)
avamingli Jan 10, 2026
3cc6c4d
Restore parallel DISTINCT and fix cbdb_parallel tests
avamingli Jan 11, 2026
c21b9eb
Replace hardcoded PGSQL.7000 port with configurable pattern
avamingli Jan 11, 2026
5c6a066
Handle zero group count in aggregation planning
avamingli Jan 12, 2026
636d8a8
Fix locus after Motion on Shared Scan partial path
avamingli Jan 12, 2026
fe7c8a4
Remove assertion for SegmentGeneral join with workers
avamingli Jan 12, 2026
ff95e25
Fix: disable dynamic shared scan for fault trigger tests
avamingli Jan 12, 2026
c1e5e69
Resolve conflicts from main branch and fix cases (up to a point 3)
avamingli Jan 12, 2026
2c094a7
Fix crash of set_subqueryscan_references.
avamingli Jan 13, 2026
aaef992
Optimize CI Testing by Reducing Redundant Plan Diff Maintenance.
avamingli Jan 18, 2026
d340b90
Ignore hot_standby/query_conflict.out
avamingli Jan 18, 2026
0e7b2b5
Ignore ao_upgrade.sql and ao_upgrade.out
avamingli Jan 18, 2026
bd09fe8
Fix motionHazard assignment bug in set_cte_pathlist
avamingli Jan 27, 2026
5e4635e
Rename vague pushdown functions for clarity
avamingli Jan 27, 2026
795c879
Fix typos and improve code quality in cdbgroupingpaths.c
avamingli Jan 27, 2026
d87af75
Fix typos and formatting issues in comments
avamingli Jan 28, 2026
a3a0a4c
Add detailed comments for shareinput_mutator_dag_to_tree
avamingli Jan 28, 2026
b9ae0e4
Fix logical errors in OR-clause simplification
avamingli Jan 28, 2026
8fbecda
Fix eager SubPlan for Entry locus plans with nested InitPlans
avamingli Jan 29, 2026
544e670
Fix literal-vs-OR subsumption in CNF deduplication
avamingli Feb 3, 2026
e27fb03
Fix eager SubPlan for queries with RTE_FUNCTION in outer query
avamingli Apr 14, 2026
b9cabd0
Fix CTE shared scan self-join producing wrong results
avamingli Apr 24, 2026
894f109
Update test expected output for accumulated optimizer changes
avamingli May 6, 2026
724fb41
Fix runtime filter pushdown producing wrong results in parallel hash …
avamingli May 11, 2026
d0f63bd
Fix 2-phase aggregation cost estimation for unreliable cardinality
avamingli May 11, 2026
e3d2eb2
Fix Gather Motion for SubPlan in parallel execution slices
avamingli May 14, 2026
e2b73b5
Fix 2-phase aggregation cost estimation for unreliable cardinality
avamingli May 17, 2026
81d2f57
Add cbdb_2phase_agg_cardinality_cap GUC and fix test cases
avamingli May 22, 2026
b1f84b8
Fix CI regression test failures from new GUCs and parallel mode changes
avamingli May 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 68 additions & 13 deletions .github/workflows/build-cloudberry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -229,11 +229,31 @@ jobs:
"include": [
{"test":"ic-good-opt-off",
"make_configs":["src/test/regress:installcheck-good"],
"pg_settings":{"optimizer":"off"}
"pg_settings":{
"optimizer":"off",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"ic-good-opt-on",
"make_configs":["src/test/regress:installcheck-good"],
"pg_settings":{"optimizer":"on"}
"pg_settings":{
"optimizer":"on",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"pax-ic-good-opt-off",
"make_configs":[
Expand All @@ -242,7 +262,16 @@ jobs:
],
"pg_settings":{
"optimizer":"off",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1",
"force_parallel_mode":"1"
}
},
{"test":"pax-ic-good-opt-on",
Expand All @@ -252,22 +281,46 @@ jobs:
],
"pg_settings":{
"optimizer":"on",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"pax-ic-isolation2-opt-off",
"make_configs":["contrib/pax_storage/:isolation2_test"],
"pg_settings":{
"optimizer":"off",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
},
"enable_core_check":false
},
{"test":"pax-ic-isolation2-opt-on",
"make_configs":["contrib/pax_storage/:isolation2_test"],
"pg_settings":{
"optimizer":"on",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
},
"enable_core_check":false
},
Expand Down Expand Up @@ -1434,10 +1487,16 @@ jobs:
# 2. Follow the same pattern as optimizer
# 3. Update matrix entries to include the new setting

# Set PostgreSQL options if defined
# Set PostgreSQL options from pg_settings matrix
PG_OPTS=""
if [[ "${{ matrix.pg_settings.optimizer != '' }}" == "true" ]]; then
PG_OPTS="$PG_OPTS -c optimizer=${{ matrix.pg_settings.optimizer }}"
PG_SETTINGS_JSON='${{ toJson(matrix.pg_settings) }}'
if [[ "$PG_SETTINGS_JSON" != "null" && "$PG_SETTINGS_JSON" != "" ]]; then
while IFS= read -r line; do
# Extract key and value from JSON lines like: "key": "value"
if [[ "$line" =~ \"([^\"]+)\"[[:space:]]*:[[:space:]]*\"([^\"]+)\" ]]; then
PG_OPTS="$PG_OPTS -c ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}"
fi
done <<< "$PG_SETTINGS_JSON"
fi

# Create extension if required
Expand All @@ -1464,10 +1523,6 @@ jobs:
esac
fi

if [[ "${{ matrix.pg_settings.default_table_access_method != '' }}" == "true" ]]; then
PG_OPTS="$PG_OPTS -c default_table_access_method=${{ matrix.pg_settings.default_table_access_method }}"
fi

# Read configs into array
IFS=' ' read -r -a configs <<< "${{ join(matrix.make_configs, ' ') }}"

Expand Down
61 changes: 50 additions & 11 deletions .github/workflows/build-deb-cloudberry-ubuntu24.04.yml
Original file line number Diff line number Diff line change
Expand Up @@ -204,11 +204,31 @@ jobs:
"include": [
{"test":"ic-deb-good-opt-off",
"make_configs":["src/test/regress:installcheck-good"],
"pg_settings":{"optimizer":"off"}
"pg_settings":{
"optimizer":"off",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"ic-deb-good-opt-on",
"make_configs":["src/test/regress:installcheck-good"],
"pg_settings":{"optimizer":"on"}
"pg_settings":{
"optimizer":"on",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"pax-ic-deb-good-opt-off",
"make_configs":[
Expand All @@ -217,7 +237,16 @@ jobs:
],
"pg_settings":{
"optimizer":"off",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1",
"force_parallel_mode":"1"
}
},
{"test":"pax-ic-deb-good-opt-on",
Expand All @@ -227,7 +256,15 @@ jobs:
],
"pg_settings":{
"optimizer":"on",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"ic-deb-contrib",
Expand Down Expand Up @@ -1401,14 +1438,16 @@ jobs:
esac
fi

# Set PostgreSQL options if defined
# Set PostgreSQL options from pg_settings matrix
PG_OPTS=""
if [[ "${{ matrix.pg_settings.optimizer != '' }}" == "true" ]]; then
PG_OPTS="$PG_OPTS -c optimizer=${{ matrix.pg_settings.optimizer }}"
fi

if [[ "${{ matrix.pg_settings.default_table_access_method != '' }}" == "true" ]]; then
PG_OPTS="$PG_OPTS -c default_table_access_method=${{ matrix.pg_settings.default_table_access_method }}"
PG_SETTINGS_JSON='${{ toJson(matrix.pg_settings) }}'
if [[ "$PG_SETTINGS_JSON" != "null" && "$PG_SETTINGS_JSON" != "" ]]; then
while IFS= read -r line; do
# Extract key and value from JSON lines like: "key": "value"
if [[ "$line" =~ \"([^\"]+)\"[[:space:]]*:[[:space:]]*\"([^\"]+)\" ]]; then
PG_OPTS="$PG_OPTS -c ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}"
fi
done <<< "$PG_SETTINGS_JSON"
fi

# Read configs into array
Expand Down
61 changes: 50 additions & 11 deletions .github/workflows/build-deb-cloudberry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,31 @@ jobs:
"include": [
{"test":"ic-deb-good-opt-off",
"make_configs":["src/test/regress:installcheck-good"],
"pg_settings":{"optimizer":"off"}
"pg_settings":{
"optimizer":"off",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"ic-deb-good-opt-on",
"make_configs":["src/test/regress:installcheck-good"],
"pg_settings":{"optimizer":"on"}
"pg_settings":{
"optimizer":"on",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"pax-ic-deb-good-opt-off",
"make_configs":[
Expand All @@ -210,7 +230,16 @@ jobs:
],
"pg_settings":{
"optimizer":"off",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1",
"force_parallel_mode":"1"
}
},
{"test":"pax-ic-deb-good-opt-on",
Expand All @@ -220,7 +249,15 @@ jobs:
],
"pg_settings":{
"optimizer":"on",
"default_table_access_method":"pax"
"default_table_access_method":"pax",
"cbdb_inner_join_selectivity_damping_factor":"1",
"cbdb_streaming_damping_factor":"1",
"cbdb_eager_subplan":"off",
"cbdb_dedup_semi_damping_factor":"1",
"cbdb_enable_multi_window_agg":"off",
"cbdb_enable_setop_pre_dedup":"off",
"cbdb_enable_dynamic_shared_scan":"off",
"cbdb_2phase_agg_cardinality_cap":"1"
}
},
{"test":"ic-deb-contrib",
Expand Down Expand Up @@ -1394,14 +1431,16 @@ jobs:
esac
fi

# Set PostgreSQL options if defined
# Set PostgreSQL options from pg_settings matrix
PG_OPTS=""
if [[ "${{ matrix.pg_settings.optimizer != '' }}" == "true" ]]; then
PG_OPTS="$PG_OPTS -c optimizer=${{ matrix.pg_settings.optimizer }}"
fi

if [[ "${{ matrix.pg_settings.default_table_access_method != '' }}" == "true" ]]; then
PG_OPTS="$PG_OPTS -c default_table_access_method=${{ matrix.pg_settings.default_table_access_method }}"
PG_SETTINGS_JSON='${{ toJson(matrix.pg_settings) }}'
if [[ "$PG_SETTINGS_JSON" != "null" && "$PG_SETTINGS_JSON" != "" ]]; then
while IFS= read -r line; do
# Extract key and value from JSON lines like: "key": "value"
if [[ "$line" =~ \"([^\"]+)\"[[:space:]]*:[[:space:]]*\"([^\"]+)\" ]]; then
PG_OPTS="$PG_OPTS -c ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}"
fi
done <<< "$PG_SETTINGS_JSON"
fi

# Read configs into array
Expand Down
Loading
Loading