Open
Description
Jira Link: DB-1591
Motivation -
- Feature / Need: This is one of the key motivating factors for application developers and database administrators. Each new version introduces many small and big features which open new ways of solving a problem and introducing new improvements.
- Support for new Postgres Extensions: An added advantage for some can be added features which you get with the use of Postgres Extensions. With each new version of PostgreSQL the extensions take advantage of the new features and add functionality which can be boon for application development. Tools like Pgpool, Bgbouncer, extensions get better with each version.
- Community Support and Fixes: The best part of using an open source community database is not being bound by proprietary licensing hence low cost of operations as well as a large group of developers contributing to it. That doesn't translate to being able to keep using a version indefinitely or getting fixes indefinitely. Every version of Postgres is supported by the community for a defined period of time in which the community releases security patches and bug fixes on a regular cycle. Once the version is deemed unsupported, the fixes stop.
- Compliance: Organizations have strict compliances to ensure and enforce that critical application databases are up to date with the latest supported versions. These policies can also extend to applications with embedded databases. This makes it imperative to keep your deployments up to date.
- Performance: Throughput of your database can be your key driving factor for upgrades. With each new version Postgres keeps delivering better performances.
Phase 1 - Set up Postgres 15 branch for YSQL
Feature | Status | Comments |
---|---|---|
Create pg15 YSQL branch |
✅ | https://github.com/yugabyte/yugabyte-db/tree/pg15 |
Rebase Postgres 15 changes onto pg15 branch |
✅ | From PG version 15.2 (commit) |
Fix post-rebase compilation issues | ✅ | Support compiling with ./yb_build.sh --clang15 --sjb --rebuild-postgres --no-initdb |
Set up regular rebase of Yugabyte latest on pg15 branch |
✅ | weekly rebase from yugabyte-db/master branch |
Phase 2 - Support YSQL database initialization (initdb)
Feature | Status | Comments |
---|---|---|
Initdb bootstrap stage | ✅ | Initialize core template1 system tables |
Initialize rest of pinned objects | ✅ | setup_auth and setup_depend |
Initialize rest of template1 objects | ✅ | collations, dictionary, privileges, schemas, plpgsql |
Initialize other primitive databases | ✅ | template0 , postgres , yugabyte , and system_platform |
Phase 3 - Feature parity with current YSQL
Many features are already used internally as part of initdb
(phase above)
Feature | Status | Comments |
---|---|---|
Set up CI tests for pg15 branch |
✅ | Run all the same tests as for the latest branch |
Review new PG 15 tests | ✅ | Add any new tests for pre-existing (PG11) features |
Clean up CI test results | ✅ | Fix any broken tests to get regular clean runs on pg15 branch |
Review and merge PG extensions | ✅ | e.g. pg_stat_statements , pg_hint_plan , orafce , etc. |
Support rolling upgrade to YSQL.PG15 | ✅ | Functional Spec and Design Doc |
Merge pg15 branch into master |
✅ | PG v15 as default YSQL baseline |
Phase 4 - Enable select PostgreSQL v12 to v15 features
Feature | Status | Comments |
---|---|---|
Allow foreign keys to reference partitioned tables | ✅ | Added in PG 12 (release notes) |
Stored generated columns | ✅ | Added in PG 12 (release notes) |
Better query planning when using extended statistics | ⬜️ | Added in PG 13 (release notes) |
Improvements to PostgreSQL's query parallelism support | ⬜️ | Added in PG 14 (release notes) |
Improved Sort Performance and Compression | ⬜️ | Added in PG 15 (release notes) |
Support for the SQL MERGE command. | ⬜️ | Added in PG 15 (release notes) |
Phase 5 (future) - Enable all PostgreSQL v12 to v15 features
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status
Activity