Skip to content
This repository has been archived by the owner on May 22, 2024. It is now read-only.
Paul Guo edited this page Mar 21, 2019 · 30 revisions

PostgreSQL merge

Resources:

Plan on breakdown into iterations:

8.4 - https://groups.google.com/a/greenplum.org/d/msg/gpdb-dev/qlTs4J36Xo4/OhGzrZDhCgAJ

9.0 - https://groups.google.com/a/greenplum.org/d/msg/gpdb-dev/WvGUobgpQAI/PGwXfe24AgAJ

9.1 - https://groups.google.com/a/greenplum.org/d/msg/gpdb-dev/vCjRoolJjYk/scGAKhPABgAJ

...

Spreadsheet that lists all the commits between 8.3 and 9.5: https://docs.google.com/spreadsheets/d/1dDDDqV4ysVmDHjzLPjZGO6IMJO5DKldbgIZv8x3uMJQ/edit?usp=sharing

Some advice on dealing with merge conflicts: https://github.com/greenplum-db/gpdb/wiki/Merge-Conflict-Zoo

How to create a merge iteration branch and submit to master finally: https://github.com/greenplum-db/gpdb/wiki/Creating-a-merge-iteration-branch

Tips & Tricks

  • Here's a little perl script that auto-resolves the most trivial merge conflicts:
  • The upstream sources will be consulted regularly: for example, clone a PostgreSQL tree into a directory named 8.4 and check out REL8_4_STABLE, and another one in a 8.3 directory with REL8_3_STABLE. That will make it easy to compare versions of files.

What is the definition of done?

Spirit is: are we realizing the value of the code that we have merged

  • Master CI is green
    • Tests run both w/ and w/o Orca
    • Existing tests are green
    • All test brought in from PG are green
    • Listed here to be explicit but is included in the CI being green
      • Upgradable gpupgrade from 5.x to Master -- pg_upgrade as a proxy until gpupgrade exists
      • No platform regressions -- RHEL, SUSE, Ubuntu(?)
      • Output a build at the end of each merge back into master
  • If it works for HEAP it needs to work for AO/AOCO
  • CVEs are identified and addressed -- to be addressed at the very end of the cycle
  • Benchmarking performance monthly
  • Fast/slow retro -- +/∆