github dolthub/dolt v0.37.0
0.37.0

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

This is a major feature release.

  • Dolt now supports users and roles, with the ability to grant and revoke privileges on databases and tables.
  • dolt log now supports the --oneline and --decorate options.
  • @@dolt_transaction_commit now works as a global as well as a session variable.

Merged PRs

dolt

  • 2811: Aaron/database remove map from datasets
  • 2810: Added privilege persistence
    This adds the ability for users and roles to be persisted, through a YAML option or a CLI argument, to a JSON file.
  • 2807: Making dolt_transaction_commit a global variable
  • 2801: go/store/nbs: reduce onHeapTableIndex memory overhead
    Changes the way onHeapTableIndex is implemented. Instead of parsing the given byte buffer into new prefixes, ordinals, lengths, and suffixes slices, we now compute directly on the given buffer taking ownership of it.
    Creating an onHeapTableIndex before this PR:
    • Put the table file index bytes at the end of a byte slice and pass it to parseTableIndex
    • Footer is read to determine chunkCount
    • Byte slice is used to compute offsets from the lengths. Then parsed prefixes, ordinals, lengths, offsets, and suffixes are stored as new slices on the heap.
    • Byte slice reference is dropped
      Creating an onHeapTableIndex after this PR:
    • Put the table file index bytes at the end of a byte slice and pass it to parseTableIndex
    • Footer is read to determine chunkCount and chunkCount is used to determine total size of the index. The total size is used to slice away any additional bytes given at the front of the buffer. onHeapTableIndex retains a slice of just the index data (without the footer).
    • New space is allocated to store offsets. OffsetsReader is used to convert the provided chunk lengths into chunk offsets.
    • Byte slice reference is retained
      As a result of this change, mmapTableReader was broken. Since the new index takes ownership of the buffer, as soon as mmapTableReader unmapped the index file from memory, a segfault was thrown. mmapTableReader has instead been changed to copy index bytes into the heap.
  • 2793: go/store/{geometry, prolly, val}: Remove SQL dependencies from and cleanup pkg val
    • lots of shuffling in go/store/val/codec.go, tried to make it easier to read
    • improved (de)serialization of time.Time
    • added pkg geometry to share serialization logic between types and val
    • added (de)serialization of geometry types for the new format
    • moved SQL dependencies out of go/store/val/ in to sqle/index
    • added val.SlicedBuffer and used it to cache pointers in prolly.Node
  • 2788: Add errors to tableIndex interface funcs
    In preparation for a disk tableIndex, I altered the tableIndex functions to return errors and fixed any code that needs to return errors.
    The Ordinals() and Prefixes() functions have also been changed to return errors, but for TOW I'm not sure we can return an entire slice of all ordinals or prefixes without blowing up.
  • 2781: Implementing missing git log features for dolt log
    • --oneline option
    • show refs and tags next to commits
    • --decorate option
    • short
    • long
    • auto
    • no
    • show tags next to commits
  • 2778: go/store/prolly: 3-way Merge for Prolly Trees
  • 2774: Add Generational Chunk Store for Noms Show
    Edits the default chunk store for noms as the GenerationaCS
  • 2773: go/store/datas: Remove ValueReadWriter from Database interface; make Database interface smaller.
    Moving VRW out of the Database interface means users need to keep a VRW and a Database reference in sync and call the Database once the correct VRW has the data in it.
  • 2762: Add the TPCC benchmark and ensure that it runs correctly in Docker automation
    1. This PR creates a runner that executes against the TPCC benchmark. It can be run locally with the sample config provided
    2. This PR edits the SysbenchDocker file to run this benchmark so the CI smoketest for all benchmarking executes correctly
  • 2752: libraries/doltcore/doltdb: fix dropped errors
    This fixes a dropped code error and multiple test errors in libraries/doltcore/doltdb.

go-mysql-server

  • 797: Added privilege checks for every currently supported statement
    This adds privileges for every supported statement.
  • 796: Framework for RowIter2 and other new data representation interfaces
    • Implement Table2 for memory tables
    • Several low-level node types converted to Node2
    • Special top-level iterator to switch iteration type based on whether the tree is all Node2 or not

Closed Issues

  • 2806: @@dolt_transaction_commit can't be used as GLOBAL var, only session
  • 2805: Blake2 godep breaks build on m1 mac

Don't miss a new dolt release

NewReleases is sending notifications on new releases.