Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opt: Prune Update and Upsert input columns #34522

Merged
merged 4 commits into from
Feb 5, 2019

Commits on Feb 4, 2019

  1. opt: Add opt.Catalog support for column families

    Add Family collection to cat.Table. This information will be used by the
    Update column pruning code.
    
    Release note: None
    andy-kimball committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    6486da7 View commit details
    Browse the repository at this point in the history
  2. opt: Add ReturnCols list to MutationPrivate

    Previously, the list of RETURNING columns was inferred for mutation
    operators. However, in order to make pruning of input columns easier, and
    to prepare for a future when ReturnCols can be pruned, this commit makes
    the list explicit.
    
    For now, the new ReturnCols list is never pruned. Additional execution
    support is required for that.
    
    Release note: None
    andy-kimball committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    c7d4187 View commit details
    Browse the repository at this point in the history
  3. opt: Prune Update and Upsert input columns

    Prune input columns that are not needed by Update and Upsert operators.
    Needed columns include returned columns and columns needed to formulate
    KV Put and Delete operations to implement the mutations. All other
    columns can be pruned.
    
    This commit contains new code to enable the Upsert fast path with the
    CBO. The fast path uses the KV Put method to blindly insert new rows
    or overwrite existing rows. Because any existing data is ignored, it is
    not necessary to fetch existing rows, as is normally required. This
    also allows a much simpler logical plan.
    
    After this change, the optimizer updates/upserts no longer need to stay
    behind a feature flag, as all fast paths should now work at least as
    well as they do with the heuristic planner.
    
    Release note (sql change): Delete, Update, and Upsert statements are
    now planned by the cost-based optimizer.
    andy-kimball committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    2d75cf1 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2019

  1. opt: Remove experimental_optimizer_mutations flag

    Release note: None
    andy-kimball committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    cabe058 View commit details
    Browse the repository at this point in the history