github dolthub/dolt v0.26.6
0.26.6

latest releases: v1.35.10, binlog-alpha-1, v1.35.9...
2 years ago

Merged PRs

dolt

  • 1753: Transaction tests for dolt, and couple small bug fixes for transactions
  • 1749: remotestorage: Add some simple fetch/pull metrics instrumentation.
  • 1748: Vinai/improve persisting super schemas for COMMIT
  • 1746: Added mini rollback functionality for statements that error
    This fixes #1738
    Previously, whenever we failed a statement we never wrote a new root, however with the addition of transactions, we now update the root on both success and failure. As a result, an incorrect behavior is now surfacing in more interfaces.
    The bug is that any core data manipulation statement (INSERT, REPLACE, UPDATE, DELETE) writes to the table editor as rows are modified. However, if one of the rows throws an error (such as from a duplicate key or foreign key violation), the entire statement's work is supposed to be discarded, but that wasn't happening. This adds that functionality by updating the interfaces (dolthub/go-mysql-server#429) to denote the start and end points of a statement, along with alteration of the edit accumulators. There is a performance penalty, but it seems to be relatively small (<2% regression on local comparisons).
    My true preference would be a more major rewrite to the table editor, reducing the operations to just two (Insert and Delete, similar to the current IndexEditor), and changing the edit accumulator system to a branching model (with one "central" editor accumulator and smaller accumulators focused on only that specific statement, where changes are "merged" back to the "central" accumulator). It would also be much clearer and cleaner than the PR code, and perhaps a tad faster than the current code.
    But that's for the future.
  • 1744: Mark the session state clean upon init
    I don't love this... it's meant to address this failure in dolthub:
    https://github.com/dolthub/ld/pull/6605
    Read-only is also kind of a bad name, it still writes to the chunk store if you issue a write query, it just won't call WriteRootValue when a transaction is committed
    Thoughts?
  • 1741: fixes infinite loop
    A deadlock can occur when the chunk size is greater than the maximum chunk size and a chunk with children gets removed, but it isn't removed from the withBufferedChildren map.
  • 1740: Removed flushing on foreign key checks for tables with pks
    Currently foreign keys necessitate a flush whenever you want to check a table editor's indexes for a partial key. With the recent index editor rewrite adding an efficient way to check partial keys, we can extend that and use it for foreign key checks as well.
  • 1739: Improve fetch and pull performance and reliability.
    Allow URLs to be refreshed when signing credentials are expired or revoked. Increase small fetch concurrency. Limit hedged downloads to one per fetch. Avoid hedging large downloads for now.
  • 1737: Fix tests for changes in go-mysql-server, upgrade same

go-mysql-server

  • 437: /.github/workflows/format.yml: enable autoformatting
  • 435: /.github/workflows/bump-dependency.yaml: remove working dir, doesnt exist
  • 434: Rewrote transaction tests to be much more succinct, and added several more
  • 433: Fixed non-deterministic test query
  • 432: Repro test case for ErrFieldMissing bug
  • 431: Fixed foreign key errors in NTC test setup
  • 430: Fixed bug in field indexes related to pushdown of indexes in subqueries
  • 427: Initial percent_rank fn
    • percent_rank function implemented, which is basically the step function quantile of column-sorted rows within a partition.
    • moved helpers to window/window.go
    • created WindowExpression interface to facilitate helper function re-use (there are multiple ways of doing that, extra interface isn't super necessary but made sense to me at the time)
      todo:
    • bats with great expectation specific query
  • 426: added ErrIndexOutOfBounds test
  • 425: Bug fixes for date comparisons
    This fixes #1572
  • 424: Transaction support
    This change:
    • Moves a bunch of transaction and other session management code out of Handler into Engine
    • Introduces a new set of tests around transactions
    • Fixes the error message for duplicate key violations
    • Removes AsyncNode and related code
    • Eliminates duplicate query parsing
  • 423: Vinai/distinct expressions
    This pr does the following
    1. Fix incorrect behavior with AVG
    2. Enable the use of DISTINCT within aggregation eg. SUM(DISTINCT )
    3. Enables the use of DISTINCT on aggregation that is grouped

vitess

  • 74: add parsing for create temporary table

Closed Issues

  • 1738: Session corrupted when certain self-referential foreign key constraint violated

Don't miss a new dolt release

NewReleases is sending notifications on new releases.