Skip to content

Instantly share code, notes, and snippets.

@d
Last active June 21, 2017 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d/55d522fdb31aaa01977bcc7766277531 to your computer and use it in GitHub Desktop.
Save d/55d522fdb31aaa01977bcc7766277531 to your computer and use it in GitHub Desktop.
Problem Statement

What challenge are we facing?

  1. As an ORCA pair adding a backwards-compatible change, we'd like to be able to rebuild Greenplum without code change so as to see our change in effect in the database.
  2. As a non-ORCA developer working on Greenplum Database, I'd like ./configure to fail if my local ORCA version will cause a compilation failure.

A modest proposal

Use semver to convey breaking changes:

  1. Let's start with Greenplum stating an "required version" of 2.9.1
  2. If Venky improved some implementation of stats (interface preserving), he bumps ORCA version from 2.9.1 to 2.10.0. Venky should be able to rebuild GPDB without changing it to effect his optimizer change. (Implied: 2.10.0 satsifies a "required version" of 2.9.1.
  3. Jesse renaming all the Hungarian function names to Chinese function names should bump ORCA version from 2.9.1 to 3.0.0 . Greenplum should understand that 3.0.0 does not satisfy 2.9.1. Jesse also needs to change autoconf in Greenplum so that when Jimmy rebases, he gets a configure failure, prompting him to "pull and rebuild ORCA".
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment