greenplum-db/postgres-archive

Modifications to the Postgres TableAM

Opened this issue · 1 comments

This is intended to be one or more over arching epic(s) rather than a single issue/story. This is intended to be just a larger place to store context and ideas, specific work can/should be worked on in separate issues/PRs which can be linked to this issue.

Over the last few months we have been looking at the Table AM new to Postgres, both as the means to help us implement Zedstore, as well as us refactoring AO/AOCO tables during the merge of Postgres 12 into Greenplum.

General work to be done:

  • enable pass down of projection information
    • make sure all operations (seq scan, index scan, updates, deletes, inserts, returning, locking, copy) are only touching what needs to be touched
    • plan time or execution time - possibly a combination for things that can only be done at execution time
    • we need to address both planned and unplanned operations
  • making cost based plans with column store
    • Figure out analyze and statistics.
    • Pengzhou's patch - make statistics gathering column aware, leverage that column awareness in planner
  • storing state / passing state around for DML operations, returning operations, triggers,
    • discussed at the unconf and the need was generally agreed on
    • might need information beyond state that the caller holds
    • look at what exists in scans for inspiration