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 Delete operator input columns #34303

Merged
merged 5 commits into from Jan 31, 2019
Merged

Commits on Jan 31, 2019

  1. util/log: explain why log.Fatal never returns

    log.Fatal has an interesting logic to ensure it never returns,
    together with a timeout in case something bad happens. This logic is
    non-trivial and wasn't documented. This patch adds some doc.
    
    Release note: None
    knz authored and andy-kimball committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    5f8259a View commit details
    Browse the repository at this point in the history
  2. opt: Change how mutation columns are exposed by the catalog

    Previously, the cat.Table.ColumnCount method returned a count that
    included mutation columns. After this commit, it will no longer include
    mutation columns. In addition, it adds new WritableColumnCount and
    DeletableColumnCount methods to cat.Table. This makes the cat.Table
    interface more like the underlying Table struct.
    
    Release note: None
    andy-kimball committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    19875e0 View commit details
    Browse the repository at this point in the history
  3. opt: Expose mutation indexes in catalog

    Add cat.Table.WritableIndexCount and cat.Table.DeletableIndexCount
    methods to the catalog. These allow access to indexes that are in
    process of being added or dropped to/from the table. This is needed
    for mutation operator optimization.
    
    Release note: None
    andy-kimball committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    c17d041 View commit details
    Browse the repository at this point in the history
  4. opt: Store table alias as TableName

    Currently, TableMeta stores any table alias as a string. This commit changes
    that to instead store the resolved TableName or query alias as a TableName.
    While the current situation is OK, this change makes the alias more
    convenient to use, and fits better with other parts of the code.
    
    Release note: None
    andy-kimball committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    bf8abbe View commit details
    Browse the repository at this point in the history
  5. opt: Prune Delete operator input columns

    Prune input columns that are not needed by a Delete operator. Needed
    columns include returned columns and index key columns. All other columns
    can be pruned.
    
    Pruning Delete columns causes new interactions with the Delete "fast path"
    that uses range delete. When multiple column families are in use, the
    range delete needs to cover all column families. The "forDelete" flag
    is used to construct spans that cover all columns, rather than just
    "needed" columns. A new ConstructDeleteRange exec factory function sets
    this flag correctly.
    
    After this change, optimizer deletes 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 statements are now planned by the cost-
    based optimizer. The ORDER BY clause can no longer be used with a DELETE
    statement when there is no LIMIT clause present. Sorting the output should
    instead be done using SELECT..FROM [DELETE ..] ORDER BY ..
    andy-kimball committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    1fc17b1 View commit details
    Browse the repository at this point in the history