Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
244 commits
Select commit Hold shift + click to select a range
3aefe0c
Change directory table directory's file path from relfilenode to relid.
zhangwenchao-123 Jun 6, 2025
f6ef065
PAX: disable build googlebench by default
jiaqizho Jun 16, 2025
93fb6c5
Suppress deprecation warnings for MD5 functions on OpenSSL >= 3.0 (#1…
yjhjstz Jun 17, 2025
4e12400
ORCA: Pruning the unused ColRefs in CTE
jiaqizho May 8, 2025
65cbe8b
ORCA: Pruning the output columns in CTE
jiaqizho May 14, 2025
2ced9ea
Add explain analyze detailed info of hash agg (#15917)
yaowangm Aug 24, 2023
65e8a65
Fix potential use-after-free of viewQuery in ExecRefreshMatView (#1159)
yjhjstz Jun 17, 2025
5a6322d
Fix segfault when recovering 2pc transaction (#1078)
Smyatkin-Maxim Jun 17, 2025
fbe7192
[AQUMV] Remove mutable checks during answering query.
avamingli Jun 10, 2025
3eb74b8
Fix unordered GUC names.
avamingli Jun 11, 2025
ff9375e
Update bash $PATH in gpdemo for better portability
tuhaihe Jun 16, 2025
851373b
Fix gcc 12.4 complier error in LookupFuncWithArgs.
yjhjstz Jun 16, 2025
a8e1ab6
[AQUMV] Directly compute queries from materialized views with GROUP BY.
avamingli Jun 5, 2025
1302354
ORCA: deduplicate superset in AndOp when scalar condition has subset
jiaqizho May 27, 2025
f284667
gpfdist add --compress-level
yjhjstz Jun 18, 2025
042f88d
Make XLogCompressBackupBlock fail gracefully instead of PANIC on error
yjhjstz Jun 12, 2025
b4c0ed8
Fix: wrong aggno and aggtransno generated in ORCA
jiaqizho Jun 18, 2025
0b80005
Don't export libpq.so symbols in the postgres binary. (#16234)
lmzzzzz1 Aug 29, 2023
c19af32
ORCA: allow partition table use the append node
jiaqizho Mar 28, 2025
e21d8f5
Fix compile issue by strict checker
gfphoenix78 Jun 16, 2025
89b88ef
Add configure-time check for protobuf, zstd, cmake when --enable-pax …
yjhjstz Jun 10, 2025
6305ed4
Restore previous logic in `pathnode.c` from commit ed64982
roseduan Jun 23, 2025
b0640bd
Remove misleading elog(LOG) on WAL compression failure without ZSTD s…
yjhjstz Jun 20, 2025
ec8f5a7
Parallel DISTINCT plan of multi-stage.
avamingli Jun 19, 2025
ca348ca
Fix missing smgrAO calls (#1193)
reshke Jul 2, 2025
bda8d29
Check MergeAppend node in share input mutator (#1204)
reshke Jul 2, 2025
8b8393e
Improve handling of distinct partial paths.
avamingli Jul 2, 2025
06f825c
Enhancement: change link methd to reduce PLT overhead
gongxun0928 May 16, 2025
6280b36
initdb: Reject empty string for -U/--username option
yjhjstz Jul 2, 2025
aa928ba
Add runtime filter pushdown support for DynamicSeqscan operator
zhangyue-hashdata Jul 2, 2025
e7db3f3
Make UNION Parallel.
avamingli Jul 3, 2025
1abccc2
Rethink the way make_union_unique fetch upper rel.
avamingli Jul 4, 2025
68e5193
Fix type mismatch in dsm_attach() argument by using DatumGetUInt32()
yjhjstz Jun 26, 2025
3f37710
perf: Improve hash agg performance in large-scale data situations
gongxun0928 Jun 20, 2025
97032e7
Cleanup: Remove obsolete pre-push git hook
tuhaihe Jul 3, 2025
06fb8ff
Fix: invalid write in MotionConn when motion type is explicit redistr…
jiaqizho Jul 9, 2025
a524e70
Forbid writable CTE with SELECT INTO clause.
avamingli Jul 7, 2025
7cc60d6
Fix excessive TOAST storage for AO row tables
avamingli Jul 13, 2025
3f36f80
fix toast cases
avamingli Jul 13, 2025
c61b1dd
FIX: core dump when exit(0) happend in postgres (#1228)
jiaqizho Jul 15, 2025
8c1e869
Fix CTAS crash.
avamingli Jul 9, 2025
dfe10f0
Remove Upstream Assertion in Cloudberry's Parallel UNION codes.
avamingli Jul 14, 2025
6809eb9
Replace std::shared_ptr<File> by std::unique_ptr<File>
gfphoenix78 Apr 18, 2025
4f35780
Use unique pointer in OrcGroup::pax_columns_
gfphoenix78 Apr 18, 2025
e21fb0b
Fix check for database version inside pg_upgrade.
reshke Jul 18, 2025
4bfa715
Add cloudberry-env.sh file and rename all greenplum_path strings to u…
Jul 4, 2025
23f5099
Fix typo.
avamingli Jul 16, 2025
8208159
ORCA: inline some of basic wrapper function
jiaqizho Jul 3, 2025
7855e19
Don't support quicklz anymore.
zhangwenchao-123 Jun 25, 2025
5546ee2
ORCA: Wrap bms_* function in C++
gfphoenix78 Jul 23, 2025
c5e9b99
PAX: Use const reference to avoid constructor/destructor of shared po…
gfphoenix78 Jul 10, 2025
9a38391
gpfdist: set default compression level to 3
yjhjstz Jun 26, 2025
b181a3f
gpfdist: Increase socket buffers when compression is enabled
yjhjstz Jun 26, 2025
4acba29
pg_dump support ao/aocs tables.
zhangwenchao-123 Jul 23, 2025
75841df
Fix handling of large OIDs by introducing HTAB.
avamingli Jul 24, 2025
5dc1e41
Fix MV status handling for partitioned tables.
avamingli Jul 24, 2025
f73537c
Release: Use pip3 download for Python packages
tuhaihe Jul 24, 2025
5addac6
Print stack trace when writer gang is lost
gfphoenix78 Jul 23, 2025
47475f0
License: add & clean up license headers and files
tuhaihe Jul 29, 2025
3e2df13
CI: add Apache RAT audit workflow for license checks
tuhaihe Jul 29, 2025
074bcb8
CI: fix rat-check status reporting issue
tuhaihe Jul 30, 2025
2d38dd2
Use event_base with libevent 2.0+ to avoid thread-unsafe event_init i…
yjhjstz Jun 20, 2025
d80a7d7
configure: Add libevent 2.0+ compatibility check for gpfdist
yjhjstz Jul 28, 2025
8432192
Set gp_appendonly_insert_files to 0 by default.
avamingli Jul 29, 2025
f13532e
fix: dead link in README
yihong0618 Jul 31, 2025
6b51a5e
Fix gprecoverseg that contains bad backport code
gfphoenix78 Jul 25, 2025
e5ba425
PAX: remove macro guard in the struct definition
gfphoenix78 Jul 31, 2025
9557581
PAX: remove unused variables
gfphoenix78 Jul 31, 2025
030740e
Enable hot standby dispatch
huansong Dec 1, 2023
dd452ea
Revert "Revert "Include distributed xid in transaction commit WAL in …
fanfuxiaoran Jun 4, 2025
d92649e
Refactor restore point pausing logic for continuous archive recovery
roicos Mar 28, 2024
25762bc
Add XLOG_LATESTCOMPLETED_GXID
huansong Apr 9, 2024
46e3e2e
Support read-committed dtx isolation for hot standby
huansong Jan 12, 2024
70f167e
Support repeatable-read dtx isolation for hot standby
huansong Feb 14, 2024
a2e5807
Enable upstream hot standby tests
huansong Feb 15, 2024
a977b55
Make sure query conflict on the standby works as expected
huansong Mar 7, 2024
ef737e6
Fix hot_standby isolation2 and regress tests
fanfuxiaoran Jun 5, 2025
a4de4e2
Fix some flaky test cases
jiaqizho Jul 31, 2025
80436a6
Fix invalid attribute mapping when runtime filter pushdown is enabled.
zhangyue-hashdata Jul 16, 2025
9cb4737
ORCA: use backtrace replace the foreach nested foreach
jiaqizho Jul 7, 2025
372cff9
Implement parallel processing for window functions.
avamingli Jul 28, 2025
f01a56c
Disable offsetnumber assertion in ginPostingListDecodeAllSegments()
avamingli Jul 11, 2025
7ca9480
Add a FIXME for potential failures in other files.
avamingli Aug 4, 2025
7edb983
Fix pg_dump for hash partitioning on enum columns.
tglsfdc Mar 17, 2023
15670d9
Fix CI for Cloudberry
Jul 29, 2025
1e03fab
Replace pip3 download with curl for Python deps
tuhaihe Aug 1, 2025
0b86861
fast-analyze: implement fast ANALYZE for append-optimized tables
Oct 29, 2022
7409ad6
Fix fast analyze for PAX tables and simplify acquisition function sel…
yjhjstz Jul 17, 2025
6cd25e7
Add macro documentation comments to AC_DEFINE for FTS and OpenSSL opt…
yjhjstz Aug 8, 2025
2950f66
Fix 'dispath' typo in direct dispatch code.
avamingli Aug 7, 2025
1e883db
Add option to avoid additional generated EquivalenceCalss for Relabel…
avamingli Aug 11, 2025
5ea8e86
Revert "Ban enums as distribution and partition keys"
bmdoil Jan 26, 2024
d1132a9
Fix: Prevent excessive sampling on QEs by restricting ComputeExtStati…
yjhjstz Aug 7, 2025
7191ad4
FIX: Invalid relcache leak WARNING logged in autovacuum
jiaqizho Aug 11, 2025
d85c9fb
Fix row estimation for parallel subquery paths.
avamingli Aug 1, 2025
26fe568
Correct parallel window function in CASE WHEN.
avamingli Aug 4, 2025
939c27e
ORCA: Introduce hash windows aggregation when use the vectorization e…
jiaqizho Jul 24, 2025
907cae0
ORCA: Support create plan in singlenode mode
jiaqizho Jul 31, 2025
a87ae6f
ORCA: Support pushdown partial aggregate below join
jiaqizho Jun 16, 2025
dce0926
Statistic: Add STATISTIC_KIND_NDV_BY_SEGMENTS used to calculate ndist…
jiaqizho Jul 1, 2025
9f7feb0
ORCA: Make partial agg use the ndistinct generated by segment to calc…
jiaqizho Jul 1, 2025
ac810c9
ORCA: allow different strategy control the redistribute key below agg…
jiaqizho Jun 26, 2025
d37ea6b
Fix memory leak for bitmap in PAX
gfphoenix78 Aug 17, 2025
d399fd0
Fix: use correct offset to access members of Serialized Snapshot Data
Aug 14, 2025
c19a2ed
Fix handling of interconnect_address and parallel worker check in sin…
yjhjstz Aug 14, 2025
b46fd42
Feat: Enable hot DR cluster
Jul 31, 2025
0014810
Align scan terminology: Shared Scan and ShareInputScan.
avamingli Aug 4, 2025
4933269
Fix crash in explain with append info for ShareInputScan nodes.
avamingli Aug 7, 2025
4532e6a
Add TPC-DS Query 04 test case to verify CTE sharing bug.
avamingli Aug 20, 2025
84e6733
Fix: initialize FuncExpr.is_tablefunc to false
yjhjstz Aug 20, 2025
5dba8fb
ORCA: reject functions with prosupport in DXL translation
yjhjstz Aug 20, 2025
a43df01
Fix move semantics misuse and unhide Equals() overload
yjhjstz Aug 20, 2025
d4d11ea
Fix double free issue in alterResgroupCallback during io_limit cleanup
zhangyue-hashdata Aug 21, 2025
5fbf959
Fix: Preserve relid and cdbpolicy in make_grouping_rel
yjhjstz Aug 22, 2025
a831ea7
Implement pg_get_expr() for subpartition template (#14288)
l-wang Nov 8, 2022
40b4551
Fix dangling pointer issue when mix data from diffrent ORCA caches
Aug 29, 2025
6fad2d0
PAX: Adapter the capacity of column by GUC
gfphoenix78 Aug 29, 2025
9d634a5
feat: use ColumnEncoding_Kind_DIRECT_DELTA as default in offset strea…
gongxun0928 Sep 3, 2025
20976f8
PAX: Support LZ4 compression for table columns (#1344)
gfphoenix78 Sep 4, 2025
33a82f4
Fix compilation with --disable-orca
yjhjstz Sep 2, 2025
90fc6cf
Fix: if tableam implement relation_acquire_sample_rows, then just use it
lss602726449 Aug 27, 2025
5d86180
Fix: quick exit in dumptuples if query execution is finished
HuSen8891 Aug 29, 2025
9bbf798
Enhancement: use `-e` in getversion to check Git repo
smartyhero Aug 18, 2025
26efd2f
gpMgmt: skip downloading existing Python dependency tarballs
yjhjstz Aug 26, 2025
6227011
Fix writable CTE on replicated tables EXCEPT partition tables.
avamingli Aug 6, 2025
df3a7de
Revert "Fix double free issue in alterResgroupCallback during io_limi…
zhangyue-hashdata Aug 29, 2025
096fa26
let resource group io limit testing can be reproduced (#16107)
RMTT Aug 1, 2023
2b3c599
Improve io_limit behaviors (#16351)
RMTT Sep 7, 2023
e716491
Fix resource group io limit flaky case (#16386)
RMTT Sep 7, 2023
8bc1a29
Io limit improve error log (#16394)
RMTT Sep 12, 2023
acca481
io limit: fix double free (#16459)
RMTT Sep 20, 2023
06a2461
Add one more hierarchy for resgroup cgroup root (#16732)
RMTT Dec 5, 2023
5a0a2a3
delete cgroup leaf dir only when use group-v2 (#16830)
RMTT Dec 12, 2023
fdd62e9
Add guc: gp_resource_group_cgroup_parent (#16738)
RMTT Dec 19, 2023
ce893ec
Fix no response when alter io_limit of resource group to '-1' (#17095)
RMTT Feb 27, 2024
3c29813
Fix gpcheckresgroupv2impl to use dynamic cgroup parent from GUC param…
zhangyue-hashdata Aug 31, 2025
4851578
feat: support runtime filter push down to Table AM
gongxun0928 Aug 21, 2025
6e1ed5a
This is the initial commit for moving cloudberry-devops-release to ma…
Aug 27, 2025
b70a4a8
Reorganize files in main repo and add licence info to all files
Aug 27, 2025
c943a4f
PAX: Rename all PAX guc names from pax_xxx to pax.xxx
gfphoenix78 Sep 10, 2025
82314f8
Give UNION ALL more opportunities for parallel plans in MPP.
avamingli Aug 13, 2025
94f98a2
Allow ON COORDINATOR for ext file:// protocol
Smyatkin-Maxim Sep 6, 2025
d14ed09
Doc: update Cloudberry naming in `devops` dir (#1354)
tuhaihe Sep 18, 2025
d7adc56
ORCA: prevent crashes with extension prosupport functions in NULL rta…
yjhjstz Sep 12, 2025
9bcbf78
Feature: add MCP server for Cloudberry
Sep 19, 2025
771b995
Add ubuntu22.04 build/test docker containers
Sep 2, 2025
f1fcde3
Optimize motion timeout transmission (#1365)
oracleloyall Sep 22, 2025
2203e2b
Revert "ORCA: Support create plan in singlenode mode"
yjhjstz Sep 22, 2025
135f5cd
Fix parallel worker assignment for partial paths
avamingli Sep 22, 2025
ed66e03
Improve CI reliability and developer productivity through test schedu…
edespino Oct 7, 2025
4a99641
Release: add commit changelog generator script
tuhaihe Sep 12, 2025
da9f802
perf: use unique_ptr instead of shared_ptr (#1374)
gongxun0928 Oct 8, 2025
ffa1dec
Fix NULL locus of Shared Scan.
avamingli Sep 29, 2025
2946564
Optimize OrcWriter: precompute varlena indices to skip invalid loops
gongxun0928 Oct 9, 2025
333a7ae
Bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows
dependabot[bot] Oct 10, 2025
8a50648
Enhancement: simple code optimization
gongxun0928 Sep 21, 2025
2b01982
Wait more time for writer gang
Sep 29, 2025
56c9034
Optimize null bitmap handling for better append performance
gongxun0928 Oct 9, 2025
36718d8
Add libssh2-devel package for gpfdist SFTP
Oct 16, 2025
0bf5eee
Add libssh2-devel package for gpfdist SFTP protocol
Oct 16, 2025
d086bec
Make gp_cte_sharing globally configurable
avamingli Oct 16, 2025
93ffc87
[ORCA] Fix segmentation fault when appending group statistics
yjhjstz Oct 14, 2025
18f6a34
Fix Segment NDV number underflow issue (#1387)
weinan003 Oct 20, 2025
0d0c1e4
Fix readable CTE with SELECT INTO clause.
Oct 17, 2025
a860f73
CI: fix libssh2-devel installation for gpfdist SFTP protocol
tuhaihe Oct 20, 2025
3721bf1
Fix duplicate distribution keys from subqueries.
avamingli Oct 20, 2025
d1cfbf8
ORCA: skip MVCC system columns for standalone AO tables (#1409)
yjhjstz Oct 22, 2025
24fa406
Fix: check and ereport error in external table
lss602726449 Oct 13, 2025
5a88bfe
Comment: Correct comments on varlena headers
gfphoenix78 Oct 15, 2025
ded030f
CI: update the must passed jobs' name in .asf.yaml
tuhaihe Jun 19, 2025
9e70b05
Revert "CI: update the must passed jobs' name in .asf.yaml"
tuhaihe Oct 24, 2025
25d6760
CI: support run docker build/test on PR
tuhaihe Oct 29, 2025
e0fe879
Fix: fix bug When the TDE feature is enabled, backend panic will caus…
Oct 27, 2025
51d5e4e
Switch to Streaming HashAgg for multiple phase aggregation.
avamingli Oct 27, 2025
16e23ec
fix cases
avamingli Oct 28, 2025
b050121
Add GUC gp_use_streaming_hashagg
avamingli Oct 28, 2025
389a6f3
fix unstable cte_prune
avamingli Oct 28, 2025
fce4362
fix unstable cte_prune again
avamingli Oct 28, 2025
997cb21
Fix orca judgement of whether relation is empty is not accurate.
zhangwenchao-123 Oct 28, 2025
2d77323
Fix compile issue for higher version of gcc/g++
gfphoenix78 Nov 10, 2025
cd1c31c
Move the global ext_dml_init_hook/ext_dml_fini_hook to AM scoped
gfphoenix78 Nov 10, 2025
bb7c13a
Fix calculating size of a database or tablespace
gfphoenix78 Nov 14, 2025
2fcac27
fix: correct EXITS typo to EXISTS in SQL and code
avamingli Nov 13, 2025
fe68e60
In resource-constrained environments, 10TB-scale 8-parallel processin…
oracleloyall Nov 13, 2025
afb8767
Doc: update the Cloudberry branding in PAX tests
tuhaihe Sep 11, 2025
e2b027a
Fix analyze paritioned table in somecase will coredump.
zhangwenchao-123 Nov 17, 2025
66a2542
Fix: tde encrypt buffer context don't use share memory
Oct 31, 2025
232bb40
Initial: squash cloudberry-bootcamp into devops/sandbox
tuhaihe Oct 14, 2025
df83e7f
Reorgnize the files in sandbox
tuhaihe Oct 14, 2025
ae597ca
Sandbox: updates for the main branch/release
tuhaihe Jun 17, 2025
dcc7d6a
Introduces GitHub Actions workflow for Apache Cloudberry (incubating)…
Jun 12, 2025
51cd351
Fix: fix external table check and report errors
lss602726449 Nov 20, 2025
4e5a85a
Fix the creation timeout retry logic of cdbgang_createGang_async shou…
oracleloyall Nov 21, 2025
37f633d
Fix assertion failure when running \dit+.
zhangyue1818 Nov 28, 2025
236ab4b
Doc: Add compressed files notice to README.apache.md
tuhaihe Nov 27, 2025
c5f2ff4
Fix incorrect column number in funcTupleDesc initialization.
zhangyue-hashdata Aug 23, 2025
6d7970e
devops: Add library liburing in docker image
gfphoenix78 Dec 2, 2025
0061d45
Sandbox: add `-c local` build mode
tuhaihe Nov 19, 2025
093c187
fix(backend): Skip cdb_setup/cdb_cleanup for auxiliary background wor…
zhan7236 Nov 27, 2025
db5f5ca
PAX: optimize io read for multiple discrete columns in a group
gfphoenix78 Nov 27, 2025
60d213f
Feature: Add UDP2 interconnect protocol implementation (#1357)
zhangyue1818 Dec 4, 2025
2534912
Port UDP motion layer fixes from ic_udpifc.c to udp2
zhangyue1818 Oct 22, 2025
6d3287f
Rename `incremental` nonterminal to `opt_incremental`. (#1473)
reshke Dec 6, 2025
e7bfce5
Add liburing dependency check for PAX storage
tuhaihe Dec 4, 2025
b9d85f2
Sandbox: Add liburing to Rocky Linux 9 Dockerfile
tuhaihe Dec 4, 2025
eb980e6
Fix gawk regexp escape sequence warning
zhan7236 Nov 27, 2025
86c14b8
Remove PG-14 rebase artifact from dblink and fix for `dblink_get_conn…
reshke Dec 12, 2025
b482f2b
Cherry-pick: Add pg_buffercache_usage_counts() to contrib/pg_bufferca…
reshke Dec 13, 2025
1acdb95
Fix SonarQube error and refine trigger conditions
tuhaihe Nov 24, 2025
07c0b6d
FIx regress and TAP test for amcheck and enable in CI (#1489)
reshke Dec 15, 2025
897032b
Refactor dumping of pg_type_encoding attributes.
bmdoil Jul 4, 2022
6e2d2e9
Add argument --next-gxid in pg_resetwal to support next-gxid reset.
Jan 7, 2021
4f4bd7e
Fix: fix pg_upgrade and pg_dump for upgrade
lss602726449 Nov 28, 2025
33865b2
Fix std::terminate() caused by uncaught exception in ORCA (#1481)
NJrslv Dec 19, 2025
c4c96a9
Backport: Compute aggregate argument types correctly in transformAggr…
reshke Dec 22, 2025
2b20861
Improve error message when COORDINATOR_DATA_DIRECTORY is unset
water32 Dec 23, 2025
c842b9f
Fix `stop_postmaster` call in get_cluster_version. (#1497)
reshke Dec 23, 2025
eb1c1fb
Backport: Properly NULL-terminate GSS receive buffer on error packet …
reshke Dec 23, 2025
978e5ad
Fix pg_rewind fail in TAP tests. (#1502)
reshke Dec 25, 2025
7b4302a
Fix and rename --use-unique-keys option and add TAP test (#1508)
reshke Dec 25, 2025
21e71b8
ORCA: Fix assertion failure for dynamic table scan rewindability
yjhjstz Dec 27, 2025
73ef10c
Fix pg_dump TAP tests. (#1505)
reshke Dec 29, 2025
767f64d
Fix initdb TAP tests. (#1503)
reshke Dec 30, 2025
e937f02
Beautify `UpdateCatalogForStandbyPromotion`. (#1501)
reshke Dec 30, 2025
b49ab3a
Fix CI failures due to insufficient disk space
tuhaihe Dec 27, 2025
24ce346
Add more contrib extensions to ic-contrib-check
reshke Dec 27, 2025
35b8932
Fix gpconfig for resource group v2 on segment hosts (#1507)
zhangyue1818 Jan 1, 2026
fed447d
Fix missing shebang in failover shell scripts
tuhaihe Dec 12, 2025
0237e3f
Fix PAX build failure on GCC 8.x (Rocky Linux 8)
tuhaihe Dec 30, 2025
66b62d7
CI: Add rpm-build and rpmdevtools to Rocky8 image
tuhaihe Jan 7, 2026
1855e14
Add liburing2 to dependencies (#1527)
leborchuk Jan 13, 2026
333d33c
ORCA: Validate hash function existence in IsOpHashJoinable
yjhjstz Dec 31, 2025
7d864d9
CI: support free disk space for workflows in Ubuntu
tuhaihe Jan 13, 2026
f3f1855
ASF: update copyright year to 2026
tuhaihe Jan 13, 2026
b39310b
CI: add NOTICE year and binaries check to Apache RAT check
tuhaihe Oct 29, 2025
f4a8271
Use smgr-interface provided create_ao function. (#1534)
reshke Jan 16, 2026
8909f6b
Add branch protection for REL_2_STABLE in .asf.yaml
tuhaihe Jan 15, 2026
f4cd289
CI: Add REL_2_STABLE support to GitHub workflows
tuhaihe Jan 14, 2026
74936d7
ORCA: Fix memory leak in CWindowOids by adding destructor (#1533)
yjhjstz Jan 21, 2026
e766944
Do not initialize programm query string when unneeded. (#1536)
reshke Jan 22, 2026
89d008f
Add answer file for high version perl
gfphoenix78 Oct 9, 2024
58cc529
Set join_collapse_limit default value to 13 (#1525)
andr-sokolov Jan 22, 2026
bffdd7d
ORCA: Optimize CDatumSortedSet by checking IsSorted before sorting
yjhjstz Jan 23, 2026
93870d8
exclude `cdbdisp_query_test.c` in pom.xml and exclude
Jan 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .abi-check/7.1.0/postgres.symbols.ignore
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
pgarch_start
ConfigureNamesInt_gp
child_triggers
has_update_triggers
ConfigureNamesBool_gp
aocs_beginscan
AppendOnlyBlockDirectory_GetEntry
ConfigureNamesString_gp
gp_pause_on_restore_point_replay
ConfigureNamesReal_gp
TableAmRoutine
MainLWLockNames
13 changes: 13 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ github:
# Actions workflows. They do not include the workflow name as a
# prefix
contexts:
- rat-check
- check-skip
- Build Apache Cloudberry RPM
- RPM Install Test Apache Cloudberry
Expand Down Expand Up @@ -121,6 +122,18 @@ github:
# Require conversation threads to be resolved
required_conversation_resolution: true

# Branch protection for REL_2_STABLE release branch
REL_2_STABLE:
# Pull request review requirements
required_pull_request_reviews:
# Require new reviews when new commits are pushed
dismiss_stale_reviews: false
# Require at least 2 approving reviews
required_approving_review_count: 2

# Require conversation threads to be resolved
required_conversation_resolution: true

# Branch cleanup settings
# Don't automatically delete branches after merging
del_branch_on_merge: true
Expand Down
258 changes: 258 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->

# GitHub Actions Workflows

This directory contains GitHub Actions workflows for Apache Cloudberry CI/CD.

## Table of Contents

- [Available Workflows](#available-workflows)
- [Manual Workflow Triggers](#manual-workflow-triggers)
- [Artifact Reuse for Faster Testing](#artifact-reuse-for-faster-testing)
- [Running Workflows in Forked Repositories](#running-workflows-in-forked-repositories)

## Available Workflows

| Workflow | Purpose | Trigger |
|----------|---------|---------|
| `build-cloudberry.yml` | Main CI: build, test, create RPMs | Push, PR, Manual |
| `build-dbg-cloudberry.yml` | Debug build with assertions enabled | Push, PR, Manual |
| `apache-rat-audit.yml` | License header compliance check | Push, PR |
| `coverity.yml` | Static code analysis with Coverity | Weekly, Manual |
| `sonarqube.yml` | Code quality analysis with SonarQube | Push to main |
| `docker-cbdb-build-containers.yml` | Build Docker images for CI | Manual |
| `docker-cbdb-test-containers.yml` | Build test Docker images | Manual |

## Manual Workflow Triggers

Many workflows support manual triggering via `workflow_dispatch`, allowing developers to run CI jobs on-demand.

### How to Manually Trigger a Workflow

1. Navigate to the **Actions** tab in GitHub
2. Select the workflow from the left sidebar (e.g., "Build and Test Cloudberry")
3. Click **Run workflow** button (top right)
4. Select your branch
5. Configure input parameters (if available)
6. Click **Run workflow**

### Workflow Input Parameters

#### `build-cloudberry.yml` - Main CI

| Parameter | Description | Default | Example |
|-----------|-------------|---------|---------|
| `test_selection` | Comma-separated list of tests to run, or "all" | `all` | `ic-good-opt-off,ic-contrib` |
| `reuse_artifacts_from_run_id` | Run ID to reuse build artifacts from (see below) | _(empty)_ | `12345678901` |

**Available test selections:**
- `all` - Run all test suites
- `ic-good-opt-off` - Installcheck with optimizer off
- `ic-good-opt-on` - Installcheck with optimizer on
- `ic-contrib` - Contrib extension tests
- `ic-resgroup` - Resource group tests
- `ic-resgroup-v2` - Resource group v2 tests
- `ic-resgroup-v2-memory-accounting` - Resource group memory tests
- `ic-singlenode` - Single-node mode tests
- `make-installcheck-world` - Full test suite
- And more... (see workflow for complete list)

## Artifact Reuse for Faster Testing

When debugging test failures, rebuilding Cloudberry (~50-70 minutes) on every iteration is inefficient. The artifact reuse feature allows you to reuse build artifacts from a previous successful run.

### How It Works

1. Build artifacts (RPMs, source tarballs) from a previous workflow run are downloaded
2. Build job is skipped (saves ~45-60 minutes)
3. RPM installation test is skipped (saves ~5-10 minutes)
4. Test jobs run with the reused artifacts
5. You can iterate on test configurations without rebuilding

### Step-by-Step Guide

#### 1. Find the Run ID

After a successful build (even if tests failed), get the run ID:

**Option A: From GitHub Actions UI**
- Go to **Actions** tab → Click on a completed workflow run
- The URL will be: `https://github.com/apache/cloudberry/actions/runs/12345678901`
- The run ID is `12345678901`

**Option B: From GitHub API**
```bash
# List recent workflow runs
gh run list --workflow=build-cloudberry.yml --limit 5

# Get run ID from specific branch
gh run list --workflow=build-cloudberry.yml --branch=my-feature --limit 1
```

#### 2. Trigger New Run with Artifact Reuse

**Via GitHub UI:**
1. Go to **Actions** → **Build and Test Cloudberry**
2. Click **Run workflow**
3. Enter the run ID in **"Reuse build artifacts from a previous run ID"**
4. Optionally customize **test_selection**
5. Click **Run workflow**

**Via GitHub CLI:**
```bash
# Reuse artifacts from run 12345678901, run only specific tests
gh workflow run build-cloudberry.yml \
--field reuse_artifacts_from_run_id=12345678901 \
--field test_selection=ic-good-opt-off
```

#### 3. Monitor Test Execution

- Build job will be skipped (shows as "Skipped" in Actions UI)
- RPM Install Test will be skipped
- Test jobs will run with artifacts from the specified run ID
- Total time: ~15-30 minutes (vs ~65-100 minutes for full build+test)

### Use Cases

**Debugging a specific test failure:**
```bash
# Run 1: Full build + all tests (finds test failure in ic-good-opt-off)
gh workflow run build-cloudberry.yml

# Get the run ID from output
RUN_ID=$(gh run list --workflow=build-cloudberry.yml --limit 1 --json databaseId --jq '.[0].databaseId')

# Run 2: Reuse artifacts, run only failing test
gh workflow run build-cloudberry.yml \
--field reuse_artifacts_from_run_id=$RUN_ID \
--field test_selection=ic-good-opt-off
```

**Testing different configurations:**
```bash
# Test with optimizer off, then on, using same build
gh workflow run build-cloudberry.yml \
--field reuse_artifacts_from_run_id=$RUN_ID \
--field test_selection=ic-good-opt-off

gh workflow run build-cloudberry.yml \
--field reuse_artifacts_from_run_id=$RUN_ID \
--field test_selection=ic-good-opt-on
```

### Limitations

- Artifacts expire after 90 days (GitHub default retention)
- Run ID must be from the same repository (or accessible fork)
- Artifacts must include both RPM and source build artifacts
- Cannot reuse artifacts across different OS/architecture combinations
- Changes to source code require a fresh build

## Running Workflows in Forked Repositories

GitHub Actions workflows are enabled in forks, allowing you to validate changes before submitting a Pull Request.

### Initial Setup (One-Time)

1. **Fork the repository** to your GitHub account

2. **Enable GitHub Actions** in your fork:
- Go to your fork's **Actions** tab
- Click **"I understand my workflows, go ahead and enable them"**

**Secrets Configuration:**

No manual secret configuration is required for the main build and test workflows.

- `GITHUB_TOKEN` is automatically provided by GitHub and used when downloading artifacts from previous runs (artifact reuse feature)
- DockerHub secrets (`DOCKERHUB_USER`, `DOCKERHUB_TOKEN`) are only required for building custom container images (advanced/maintainer use case, not needed for typical development)

### Workflow Behavior in Forks

- ✅ **Automated triggers work**: Push and PR events trigger workflows
- ✅ **Manual triggers work**: `workflow_dispatch` is fully functional
- ✅ **Artifact reuse works**: Can reuse artifacts from previous runs in your fork
- ⚠️ **Cross-fork artifact reuse**: Not supported (security restriction)
- ⚠️ **Some features may be limited**: Certain features requiring organization-level secrets may not work

### Best Practices for Fork Development

1. **Test locally first** when possible (faster iteration)
2. **Use manual triggers** to avoid burning GitHub Actions minutes unnecessarily
3. **Use artifact reuse** to iterate on test failures efficiently
4. **Push to feature branches** to trigger automated CI
5. **Review Actions tab** to ensure workflows completed successfully before opening PR

### Example Fork Workflow

```bash
# 1. Create feature branch in fork
git checkout -b fix-test-failure

# 2. Make changes and push to fork
git commit -am "Fix test failure"
git push origin fix-test-failure

# 3. CI runs automatically on push

# 4. If tests fail, iterate using artifact reuse
# Get run ID from your fork's Actions tab
gh workflow run build-cloudberry.yml \
--field reuse_artifacts_from_run_id=12345678901 \
--field test_selection=ic-good-opt-off

# 5. Once tests pass, open PR to upstream
gh pr create --web
```

## Troubleshooting

### "Build job was skipped but tests failed to start"

**Cause:** Artifacts from specified run ID not found or expired

**Solution:**
- Verify the run ID is correct
- Check that run completed successfully (built artifacts)
- Run a fresh build if artifacts expired (>90 days)

### "Workflow not found in fork"

**Cause:** GitHub Actions not enabled in fork

**Solution:**
- Go to fork's **Actions** tab
- Click to enable workflows

### "Resource not accessible by integration"

**Cause:** Workflow trying to access artifacts from different repository

**Solution:**
- Can only reuse artifacts from same repository
- Run a fresh build in your fork first, then reuse those artifacts

## Additional Resources

- [GitHub Actions Documentation](https://docs.github.com/en/actions)
- [Cloudberry Contributing Guide](../../CONTRIBUTING.md)
- [Cloudberry Build Guide](../../deploy/build/README.md)
- [DevOps Scripts](../../devops/README.md)
Loading
Loading