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 anonHeapTableIndex
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 anonHeapTableIndex
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 betweentypes
andval
- added (de)serialization of geometry types for the new format
- moved SQL dependencies out of
go/store/val/
in tosqle/index
- added
val.SlicedBuffer
and used it to cache pointers inprolly.Node
- lots of shuffling in
- 2788: Add errors to tableIndex interface funcs
In preparation for a disktableIndex
, 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 fordolt log
--oneline
option- show refs and tags next to commits
--decorate
optionshort
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
- This PR creates a runner that executes against the TPCC benchmark. It can be run locally with the sample config provided
- 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 inlibraries/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