Contents
Summary
Closes #
Type of change
- [ ] ๐ Bug fix (non-breaking change that fixes an issue)
- [ ] โจ New feature (non-breaking change that adds functionality)
- [ ] ๐ฅ Breaking change (fix or feature that changes existing behavior)
- [ ] ๐๏ธ Refactor / internal cleanup (no functional change)
- [ ] โก Performance improvement
- [ ] ๐ Documentation only
- [ ] ๐ง Build / CI / tooling
- [ ] ๐งช Test-only change
Description of changes
Database / SQL changes
- [ ] New or modified SQL functions are declared in
sql/pgclone--<version>.sql - [ ]
PG_FUNCTION_INFO_V1names in C match theAS '<lib>', '<sym>'clauses in SQL - [ ] Return types in
.sqlmatch the CPG_RETURN_*paths - [ ]
COMMENT ON FUNCTION ...added for new public functions - [ ] Function volatility (
VOLATILE/STABLE/IMMUTABLE) andPARALLELsafety set correctly
Testing
PostgreSQL versions tested locally:
- [ ] pgTAP tests added or updated in
test/pgclone_test.sql - [ ]
plan()count exactly matches the actual number of assertions - [ ] Shell tests added/updated in
test/test_async.shortest/test_database_create.sh(if applicable) - [ ]
test/fixtures/seed.sqlupdated if new test objects are needed - [ ] CI is green on all of PG 14, 15, 16, 17, 18
# Output of pre_deploy_checks.sh (paste the summary line)
# e.g. "22 passed, 0 failed"
C code safety checklist
- [ ]
palloc/palloc0/pfreeonly โ nomalloc/free - [ ] Every
PQconnectdbhas a matchingPQfinishin all paths (success and error) - [ ] Every
PQexecresult isPQclear-ed in all paths - [ ] Dynamic SQL uses
quote_literal_cstr()andquote_identifier() - [ ]
StringInfoused for dynamic strings; no fixed stack buffers for SQL - [ ]
strlcpyinstead ofstrcpy/strncpy - [ ]
ereport/elogwith appropriate level โ connection strings never logged atLOGlevel or above - [ ] PG-version-specific APIs are guarded with
#if PG_VERSION_NUM >= XXXXXX - [ ] No new uses of removed APIs (
d.adsrc, pre-PG15 shmem-request pattern, etc.) - [ ] Shared-memory state protected by
LWLockwhere needed
Documentation
- [ ]
CHANGELOG.mdupdated under the appropriate version heading - [ ] Relevant doc updated:
docs/USAGE.md/docs/ASYNC.md/docs/ARCHITECTURE.md/docs/TESTING.md - [ ]
README.mdupdated if the change affects the user-facing feature list or quick-start
Version bump
- [ ]
pgclone.control(default_version) - [ ]
META.json(versionandprovides.pgclone.version+file) - [ ]
README.mdversion badge - [ ] New
sql/pgclone--<old>--<new>.sqlmigration script (if applicable) - [ ]
CHANGELOG.mdhas a heading for the new version
Backward compatibility
Screenshots / sample output