github dolthub/dolt v0.36.2
0.36.2

latest releases: v1.41.3, v1.41.2, v1.41.1...
2 years ago

This is a feature release.

A new system table, dolt_diff, that contains which tables changed between two commits, is now supported.

A new dolt_blame system view which contains who last edited each row of a table is now supported.

The default behavior for SQL COMMIT statements in the presence of merge conflicts has changed. They are now allowed by default.

Named windows are now supported.

It also includes bug fixes:

  • dolt login ignores interrupt signal
  • Bug for --set-upstream on push
  • Buggy behavior involving subqueries in triggers

Merged PRs

dolt

  • 2797: add bats test for different db stmts
    Added tests for using different database than current for ALTER TABLE - CREATE INDEX and ADD CONSTRAINT.
    Added tests for ADD CONSTRAINT FOREIGN KEY query should be failing, but currently does not.
  • 2786: window enginetests
  • 2784: add bats test for DROP TABLE for different database
    added bats test for "DROP TABLE otherdb.table;" statement
  • 2782: Fixing schema ordering to unbreak tests
    I added the table_name column as part of the primary key, then changed the order, not realizing that would mess up the test data.
  • 2780: go/cmd/dolt/commands: Added dolt inspect utility for investigating table file indexes
  • 2777: Fix auto increment imports
    Adds functionality and tests that allow dolt table import to correctly import auto increment data.
  • 2776: removing feature flag
  • 2775: Fix Dolt Login unable to exit on SIGINT
    TODO:
    • should also quit on error request cancelled
      SIGINT is what cancels request, so whole thing should just quit anyway.
  • 2772: Adds IndexTransformer to nbs which transforms a table file index with lengths to one with offsets
    IndexTransformer is an io.Reader that takes an io.Reader of the table file index. It specifically transforms the lengths into offsets.
  • 2771: Bug fix for an index out of bounds panic in DOLT_HISTORY_
    Panic occurs when selecting from DOLT_HISTORY_<TABLE> using a filter expression and the underlying table that doesn't have a primary key.
  • 2769: New DOLT_DIFF system table
    Adds support for a new DOLT_DIFF system table that is not scoped to a specific user table; for each commit, this table includes one row for every table changed in that commit.
    Sample Output:
    > SELECT * FROM DOLT_DIFF;
    +----------------------------------+-----------+-------------------------+-----------------------------------+-------------------------+------------+
    | commit_hash                      | committer | email                   | date                              | message                 | table_name |
    +----------------------------------+-----------+-------------------------+-----------------------------------+-------------------------+------------+
    | edr1ichcj8vpve9lofv31e7taiajv3uu | jfulghum  | jason@dolthub.com       | 2022-02-07 13:39:47.717 -0800 PST | Creating tables z       | z          |
    | 91ff8so7alcnuiq0qa1qq9e7o58i7jdb | jfulghum  | jason@dolthub.com       | 2022-02-07 13:39:26.143 -0800 PST | Creating tables x and y | x          |
    | 91ff8so7alcnuiq0qa1qq9e7o58i7jdb | jfulghum  | jason@dolthub.com       | 2022-02-07 13:39:26.143 -0800 PST | Creating tables x and y | y          |
    +----------------------------------+-----------+-------------------------+-----------------------------------+-------------------------+------------+
    
    An unscoped DOLT_DIFF felt more appropriate than an unscoped DOLT_HISTORY table since users will likely use DOLT_DIFF, then use a scoped DOLT_DIFF_<$TABLE> to look at changes in each table. DOLT_HISTORY_<$TABLE> also has semantics of showing the full history at each commit, where this table is intended to show which tables changed (not which tables existed at a commit).
    Resolves: #2740
  • 2767: go/store/prolly: Size validation for prolly tree nodes, Speedup unit tests for pkg prolly
  • 2766: go/store/prolly: diffs for new prolly tree
  • 2754: DOLT_BLAME system view support
    Initial support for the new DOLT_BLAME system view.
    Resolves: #2265
  • 2750: Fix --set-upstream bug when feature branch already exists on remote
    We were missing a test for push --set-upstream where
    the feature branch had already been pushed from another
    clone.
  • 2742: By default allow transactions to commit working sets with conflicts. Also fix DOLT_MERGE --abort
    This pr introduces a new session variable that allows for transactions by default commit working sets with conflicts.
    It also adds a fix for DOLT_MERGE abort which was broken before.
  • 2731: go/libraries/doltcore/sqle: Added support for secondary prolly indexes

    go-mysql-server

    • 793: Add type checking to auto increment
    • 792: Named Windows
      Build WINDOW clause definitions from AST into plan.Window nodes.
      Coversion currently happens in parser. This breaks the separation of
      concerns between parsing and semantic validation to avoid creating new node
      types to differentiate between Over windows and Window clause windows.
      A proper refactor probably requires changing the the parse/exec
      representations for all related nodes to carry info from the parser
      further before semantic validation.
    • 791: Database and table name visibility affected by privileges
      This limits the visibility of database and table names depending on the privileges associated with an account (whether directly on via an active role). In addition, all engine tests now run with grant tables enabled. Of course not all statements are checking for their respective privilege, but all of the other logic paths are being exercised (especially the new PrivilegedDatabase and ...Provider constructs).
      I removed some driver implementation as it was literally broken (errors in the file on main) and was obviously not relied on by anything (not even tests), so instead of fixing it for the changes I made, I just removed it altogether.
    • 786: Added all static global, database, and table privileges
      This adds all static global, database, and table level privileges. They parse and persist but do not yet restrict on anything. Future PR will dive into the full set of privilege checking.
      One major point to note (which will probably bring about confusion otherwise) is that these new tables are implemented as essentially a "view" on top of the mysql.user table. This will significantly help when it comes privilege checking, especially in the context of determining active roles and such. To complement this, PrivilegeSet was almost entirely rewritten. The related files are data_editor_view.go and grant_table_shim.go.
      With the original direction, I could have 10 different table queries and 10 sets of privilege data to manage with only 2 roles. This way, I'll only have 3 queries and 3 sets of privilege data in the same scenario.
    • 785: No longer mark subqueries in triggers as cacheable
      Resolves issue #2674
    • 783: recursive CTEs
      RecursiveCte node impl with tests for joins, group by, and subquery
      aliasing.
      RecursiveCte's are not supported in DML statements. Nested recursive
      CTE's and nested subqueries are not supported yet. Aliasing is not
      neatly split down the middle on either side for RCte unions; only the
      dual table can have alias clashes on either side of the CTE for now.
      Cyclical recursion will timeout at depth 20. This will likely need a
      rewrite with better global aliasing to support infinitely nestable
      RecursiveCte's.
      Indexed table lookups are not applied to RecursiveCte tables currently
      because of a bug in the memory impl.
    • 782: migrate invalidArgument in time.go to errors.go

    vitess

    • 119: partitionBy and overBy optional, one mandatory with frame def
    • 118: Added remaining privileges
      This adds the remaining privileges.
    • 117: recursive CTEs

    Closed Issues

    • 2621: dolt login is unquittable
    • 2785: Support: is there a query to extract file content on a specific date?
    • 2265: dolt blame in SQL interface
    • 2740: Unspecified table dolt diff and dolt_history should show the history of all the tables per commit
    • 2682: Some DDL statements without a database selected don't work
    • 2758: No TLS on doltlab.com
    • 2649: Expression parsing bug where parser can't find a column that exists
    • 2719: [Feature Request] Support with recursive

Don't miss a new dolt release

NewReleases is sending notifications on new releases.