dolt

Dolt – Git for Data

APACHE-2.0 License

Downloads
2.4K
Stars
17.1K
Committers
143

Bot releases are visible (Hide)

dolt - 0.52.18

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5271: add another layer of batching

Closed Issues

  • 5175: High load in 1) SELECT queries when we have 7000 rows and 21000 branches 2) create extra branches when we've already have 21000
  • 5166: Join between dolt_log and dolt_commit_ancestors results in go panic
  • 5204: filter on database and table names should be case-insensitive
  • 3681: set @@persist doesn't update session values

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.71 1.4
groupby_scan 12.3 16.71 1.4
index_join 1.18 4.65 3.9
index_join_scan 1.14 3.96 3.5
index_scan 30.81 52.89 1.7
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.97 8.43 2.8
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 62.19 2.0
types_table_scan 69.29 186.54 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.91 15.0 5.2
oltp_insert 1.37 3.19 2.3
oltp_read_write 5.09 18.61 3.7
oltp_update_index 1.5 7.3 4.9
oltp_update_non_index 1.47 8.28 5.6
oltp_write_only 2.26 9.39 4.2
types_delete_insert 2.97 17.32 5.8
writes_mean_multiplier 4.1
Overall Mean Multiple 3.2
dolt - 0.52.17

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5268: go/store/nbs: mem_table: getMany,getManyCompressed: Make certain to set getRecord.found = true.
    This keeps NBSStore from returning the same chunk twice if it appears in both memtable and a chunkSourceSet.
  • 5267: go/libraries/doltcore/sqle/dprocedures: Do not register dolt_gc.

Closed Issues

  • 5175: High load in 1) SELECT queries when we have 7000 rows and 21000 branches 2) create extra branches when we've already have 21000
dolt - 0.52.16

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

go-mysql-server

  • 1568: Merge join selects do not filter left join
    A join filter that evaluates to false or nil can still return rows in certain cases. One of the cases we evaluated incorrectly were LEFT_MERGE_JOINs with multiple filters, which should always return the left row even if a filter returns false. MERGE_JOIN's first filter is specially selected because its Left/Right expressions reference attributes for two tables that will arrive sorted given the indexes we chose to read. We use that first filter for the merge comparison direction.

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.71 1.4
groupby_scan 12.3 16.71 1.4
index_join 1.16 4.57 3.9
index_join_scan 1.12 3.89 3.5
index_scan 30.26 52.89 1.7
oltp_point_select 0.15 0.48 3.2
oltp_read_only 2.97 8.43 2.8
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.12 3.2
table_scan 30.81 62.19 2.0
types_table_scan 70.55 186.54 2.6
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.66 13.7 5.2
oltp_insert 1.37 3.13 2.3
oltp_read_write 5.09 18.61 3.7
oltp_update_index 1.42 6.21 4.4
oltp_update_non_index 1.34 6.55 4.9
oltp_write_only 2.18 9.56 4.4
types_delete_insert 2.76 14.21 5.1
writes_mean_multiplier 3.9
Overall Mean Multiple 3.1
dolt - 0.52.15

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5257: add bats test for release all locks on session end
    Depends on https://github.com/dolthub/go-mysql-server/pull/1569
  • 5256: go/store/blobstore: gcs.go: Make Get() make one round trip instead of reading the metadata in a separate request.
  • 5238: Rewrote dolt_branch_control to use tree searching
    Changes the dolt_branch_control table to use a tree algorithm inspired by a radix tree, with a major difference being the support for LIKE expression-style matching.
  • 5233: add dolt_cherry_pick procedure
    Add DOLT_CHERRY_PICK() and DCHERRY_PICK() procedures for SQL interface
    Removed author arg parsing from CLI cherry-pick since this arg's is not available for current implementation (can be supported).

go-mysql-server

  • 1569: release all locks on session end
    Bats test for this PR is in https://github.com/dolthub/dolt/pull/5257
  • 1568: Merge join selects do not filter left join
    A join filter that evaluates to false or nil can still return rows in certain cases. One of the cases we evaluated incorrectly were LEFT_MERGE_JOINs with multiple filters, which should always return the left row even if a filter returns false. MERGE_JOIN's first filter is specially selected because its Left/Right expressions reference attributes for two tables that will arrive sorted given the indexes we chose to read. We use that first filter for the merge comparison direction.
  • 1566: set utf8mb3_general_ci as information_schema database's collation
    DataGrip expects utf8mb3_general_ci as information_schema's default collation for MySQL.

Closed Issues

  • 4671: named locks not released on session end
  • 3704: Double with precision and scale should be interpreted as a decimal
  • 5229: Implement call dolt_cherrypick()
dolt - 0.52.14

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5244: go/store/nbs: upload table parts on push for GCS backed NBS
  • 5242: output correct result for empty JSON
  • 5240: go/store/nbs: Update table-file-exists sanity check to not check for files which are already in our view of upstream.
  • 5239: integration-tests: hardcoded versions for python deps
  • 5234: add --author arg to dolt tag command on both CLI and SQL
  • 5231: go/store/tree: use constant-time root node access for last key lookup
  • 5228: Quick fix for unnecessary error being logged
    We started logging an error instead of swallowing it, which is good, but we need to check if it's the ErrDatabaseNotFound error we know we might see, and not log an error if it's that expected case.
  • 5225: add bats tests for information schema tables
    Added bats tests for some supported information_schema tables for specific column values that must match to MySQL information_schema result. Some tables and columns are not covered here because some has constant information such as keywords table, which is tested in GMS engine tests, and some columns are created_time or sql_mode which always varies.
  • 5223: Added dolt_show_branch_databases system variable
    When set to 1, will cause a revision database for each branch to appear in show databases, information schema tables, etc.

go-mysql-server

  • 1566: set utf8mb3_general_ci as information_schema database's collation
    DataGrip expects utf8mb3_general_ci as information_schema's default collation for MySQL.
  • 1564: fixes handling of null set values
    Null set values were being ignored completely. This PR fixes this issue and addresses the display issue which shows an extra comma when null set values are present in multi-member set values.
    fixes: https://github.com/dolthub/dolt/issues/4966
  • 1562: Varchars don't error for failed IN cast to smaller varchar
    This does not address conversions between strings and non-string types, and type casting for index lookups, which look somewhat more complex in mysql.
  • 1561: Small tweaks for binlog replication
    A few more small changes to support binlog replication:
    • Increasing the length of the Last_Error field returned by SHOW REPLICA STATUS so that we can accommodate longer messages (the other two error message fields had already been increased).
    • Making the @@GLOBAL.gtid_executed system var writable, so that the Dolt binlog processor can keep it updated.
    • Adding the @@sql_log_bin system var so that mysqldumps can process cleanly (mysqldump includes SET @@SESSION.SQL_LOG_BIN= 0; in the dump file when gtid_mode is enabled on the server).
  • 1560: fix expression round trip bug
    scalar expressions need to round-trip for CHECK constraints, which expect to re-parse what they serialize with String().
  • 1559: small fix for information_schema.parameters table
    This column name was updated on MySQL docs
  • 1553: Merge join inclusion correctness
    Merge join was not principled selecting 1) monotonic filters and 2) sorting indexes that aligned with the filter of choice. We also failed to push filters referencing a single table out of join conditions.

Closed Issues

  • 4966: Set values containing '' are not displayed correctly
  • 5236: dolt sql ... --result-format=json fails to return a valid JSON when result set is empty
  • 5158: Using --result-fomat gives an error when requesting the working head of a repository using the @@db_working system variable
  • 5224: Missing author in DOLT_TAG
  • 5219: Optionally SHOW SCHEMAS should show all db.branch combinations available

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.76 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.18 4.65 3.9
index_join_scan 1.14 3.96 3.5
index_scan 30.26 53.85 1.8
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.26 62.19 2.1
types_table_scan 68.05 189.93 2.8
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.57 12.98 5.1
oltp_insert 1.27 3.13 2.5
oltp_read_write 5.09 18.28 3.6
oltp_update_index 1.32 5.88 4.5
oltp_update_non_index 1.3 6.32 4.9
oltp_write_only 2.18 9.22 4.2
types_delete_insert 2.66 11.87 4.5
writes_mean_multiplier 3.8
Overall Mean Multiple 3.1
dolt - 0.52.13

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5213: Bh/log query len configuration

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 2.76 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.18 4.65 3.9
index_join_scan 1.12 3.96 3.5
index_scan 30.26 52.89 1.7
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 62.19 2.0
types_table_scan 69.29 189.93 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.81 13.7 4.9
oltp_insert 1.42 3.13 2.2
oltp_read_write 5.09 18.61 3.7
oltp_update_index 1.47 6.32 4.3
oltp_update_non_index 1.39 7.04 5.1
oltp_write_only 2.22 9.39 4.2
types_delete_insert 2.97 14.46 4.9
writes_mean_multiplier 3.8
Overall Mean Multiple 3.1
dolt - 0.52.12

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5206: adding new codec for spatial indexes

go-mysql-server

  • 1557: make the length of logged queries configurable and default to non-tru…
    …ncated
  • 1556: fix multiple column partition
    fix for: https://github.com/dolthub/dolt/issues/5209
  • 1555: Fix dolt panic when dealing with top-most left join
    When moving join conditions to filter, update top join even if a join is left or degenerate.
    Fixes https://github.com/dolthub/dolt/issues/5136
  • 1553: Merge join inclusion correctness
    Merge join was not principled selecting 1) monotonic filters and 2) sorting indexes that aligned with the filter of choice. We also failed to push filters referencing a single table out of join conditions.

Closed Issues

  • 5175: High load in 1) SELECT queries when we have 7000 rows and 21000 branches 2) create extra branches when we've already have 21000
  • 5136: Dolt panic during multiple JOINs
  • 5209: Window function only respects first PARTITION column

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 2.71 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.16 4.57 3.9
index_join_scan 1.12 3.89 3.5
index_scan 30.26 52.89 1.7
oltp_point_select 0.15 0.48 3.2
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 62.19 2.0
types_table_scan 69.29 186.54 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.91 12.98 4.5
oltp_insert 1.42 3.13 2.2
oltp_read_write 5.18 18.28 3.5
oltp_update_index 1.47 5.99 4.1
oltp_update_non_index 1.44 6.55 4.5
oltp_write_only 2.3 9.39 4.1
types_delete_insert 3.07 12.3 4.0
writes_mean_multiplier 3.5
Overall Mean Multiple 3.0
dolt - 0.52.11

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5215: Revert "merge join correctness bump"
    Reverts dolthub/dolt#5212
  • 5212: merge join correctness bump
  • 5208: go/store/nbs: add concurrency to blobstore persister operations
  • 5207: go/libraries/doltcore/remotesrv: Response with HTTP status code 206 when writing partial responses.
    Also add Accept-Ranges headers in all HTTP responses for portions of table files and Content-Range headers for partial file responses.
    This makes the HTTP server more correct and can improve compatibility with various HTTP middleware.
  • 5205: go/libraries/doltcore/sqle/dsess: When commiting a transaction with a DOLT_COMMIT, merge against the current HEAD if necessary.
    Update the transaction logic to land a merge of current HEAD and the staged root value when we are creating a commit and the current HEAD has moved since the start of the transaction.
    Dolt allows two concurrent transactions to both land commits on a branch HEAD. In the past, Dolt would simply commit the staged value on each transaction as the value of the database for the commit, and would merge the working sets so that the branch working set was updated with the latest data. This would result in histories with commits which seemed to delete previously committed data, only for it to still be present in the working set and to reappear in later commits. This was particularly problematic under remote replication, where the dolt commits themselves are replicated.
    A change landed recently attempted to fix this by writing the merged working set value as the committed value. That works in the case of @@dolt_transaction_commit, assuming there are no manual calls to DOLT_COMMIT with manually staged changes, for example, but it has the wrong semantics when a user is manually staging and commiting changes.
  • 5201: dolt pull without configs doesnt return error when up to date
    dolt pull should not error out when there is no user name or email set. However, when dolt pull is run in a workspace that is already up to date with remote, the CLI returns an error up to date instead of printing Everything up-to-date.. This change fixes dolt pull to not return an error when the workspace is already up to date.
    fixes: https://github.com/dolthub/dolt/issues/5079
  • 5193: Fixed error in csv and json output formats for sql shell
    Fixes #5158
    The issue was that system string result types couldn't be converted into dolt schemas for printing.
    Depends on https://github.com/dolthub/go-mysql-server/pull/1550
  • 5192: go/store/NBS: faster sanity checks
  • 5191: add z-address encoding
  • 5190: go/store/nbs: Fix some trivial quota leaks.
  • 5177: go/cmd/dolt: sqlserver: If tls config is defined for the sql-server, use it for the remotesapi port as well.
  • 5165: Fixed branch -d behavior on unmerged branches to match git
    Fixes #5139
  • 4959: First pass at online GC

go-mysql-server

  • 1556: fix multiple column partition
    fix for: https://github.com/dolthub/dolt/issues/5209
  • 1552: fixes from diffs between mysql and dolt info_schema dumps
    • Fixed incorrect values in Dolt that did not match MySQL result on information_schema dump
    • Unskipped fixed test
  • 1514: binlog replication interface between GMS and Dolt
    This PR adds a BinlogReplicaController interface that defines how GMS interacts with the binlog replication code in Dolt when a user enters a replication SQL command, such as CHANGE REPLICATION SOURCE TO ..., START REPLICA, etc.
    The biggest remaining TODO in this code is adding support for CheckPrivileges functions.
    In the future, we may want to refactor out the generic binlog replication code to GMS and keep the Dolt/storage specific components in Dolt with a more detailed interface, but that felt like overkill for the initial binlog implementation.

vitess

  • 215: Adding two new binlog replication statements: RESET REPLICA and CHANGE REPLICATION FILTERS
  • 214: Added CALL ... AS OF

Closed Issues

  • 3216: Support the table_rows column with the information_schema.TABLES keyword
  • 5194: Extremely variable dolt pull download speeds
  • 5175: High load in 1) SELECT queries when we have 7000 rows and 21000 branches 2) create extra branches when we've already have 21000
  • 5158: Using --result-fomat gives an error when requesting the working head of a repository using the @@db_working system variable
  • 5079: command dolt pull returns 1 when it should return 0
  • 5139: Dolt incorrectly checks "fully merged" state when trying to safely delete branches
dolt - 0.52.10

Published by github-actions[bot] over 1 year ago

Merged PRs

dolt

  • 5186: Fixed an error when running table funcs on a read replica
    This fixes #5184
  • 5181: Add from commit index
    Adds a dolt_diff.from_commit index.
    The biggest assumption made here is if we are given from_commit and are looking for its highest to_commit that references from as a child, we can make an optimization for the case where there is only one commit in HEAD's closure at from.height+1. If there is more than one commit at height+1, that indicates a branching in the graph whose merge back to HEAD can reference from at a higher level of the tree. In the default case, or when parent is HEAD, we fall back to a reverse commit iterator that terminates as soon as we find a commit referencing from. This maintains backwards compatibility for the tests I've added.

go-mysql-server

Closed Issues

  • 5184: dolt_diff_summary doesn't work on a read replica

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.71 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.21 4.65 3.8
index_join_scan 1.14 4.03 3.5
index_scan 30.26 53.85 1.8
oltp_point_select 0.15 0.49 3.3
oltp_read_only 3.02 8.58 2.8
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 63.32 2.1
types_table_scan 69.29 189.93 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.66 17.01 6.4
oltp_insert 1.34 3.68 2.7
oltp_read_write 5.0 26.2 5.2
oltp_update_index 1.39 7.3 5.3
oltp_update_non_index 1.39 8.13 5.8
oltp_write_only 2.18 15.27 7.0
types_delete_insert 2.71 17.01 6.3
writes_mean_multiplier 5.0
Overall Mean Multiple 3.6
dolt - 0.52.9

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5180: go/libraries/doltcore/sqle/dsess: transactions.go: When merging working sets on call dolt_commit, ensure new commit also gets the merged commit root value.
  • 5176: float lexing and z encoding
  • 5174: Mention Docker images in README.md

Closed Issues

  • 5062: Unable to query current auto_increment value for table.
  • 5135: Unable to create 50000 branches

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.71 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.16 4.57 3.9
index_join_scan 1.12 3.96 3.5
index_scan 30.26 53.85 1.8
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 63.32 2.1
types_table_scan 69.29 193.38 2.8
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.81 17.32 6.2
oltp_insert 1.37 3.75 2.7
oltp_read_write 5.09 26.2 5.1
oltp_update_index 1.55 8.28 5.3
oltp_update_non_index 1.44 9.39 6.5
oltp_write_only 2.22 15.27 6.9
types_delete_insert 2.91 18.61 6.4
writes_mean_multiplier 5.0
Overall Mean Multiple 3.6
dolt - 0.52.8

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5173: Fix 3 merge bugs related to secondary indexes
    • The schema of the dolt_constraint_violations table was incorrect.
    • Unique key violations were being thrown by merge even if the index key included a null value.
    • The primary key was being built incorrectly for the unique key violations generated by merge. Previously it was assumed that the primary index's key was a suffix of the secondary index's key. This is not the case when the index key includes a column in the primary key.

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.76 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.16 4.65 4.0
index_join_scan 1.12 3.96 3.5
index_scan 30.26 53.85 1.8
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.77 2.6
select_random_ranges 0.35 1.16 3.3
table_scan 30.81 63.32 2.1
types_table_scan 69.29 189.93 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.81 16.71 5.9
oltp_insert 1.37 3.68 2.7
oltp_read_write 5.18 26.2 5.1
oltp_update_index 1.52 8.13 5.3
oltp_update_non_index 1.44 8.9 6.2
oltp_write_only 2.22 15.27 6.9
types_delete_insert 2.91 18.28 6.3
writes_mean_multiplier 4.9
Overall Mean Multiple 3.6
dolt - 0.52.7

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5169: Fix log table RowCount panic
    CommitClosure methods are not nil-safe, check before calling CommitClosure.Count().
  • 5167: Removed branch control database file size limitation
    The resulting database file is fully compatible with older dolt clients since the read path skips the size and noms prefix. Switching the strings to CreateShared also gave a decent space savings as well.
    To see if there was a noticeable performance difference, I tried removing everything except for the binlog, and reconstructing the branch control tables from the binlog, and the differences were negligible. The resulting file was definitely smaller, but performance-wise there wasn't much difference when reading or writing from the file. We spend so much time in the engine that it doesn't really matter. So I decided to go this route since we still retain full compatibility.
  • 5137: System Table to-commit/commit-hash lookups
    Filters and joins on system tables can take use commit hashes in
    equality filters as direct lookups into the node store. System tables
    reject non-point lookups.
    Missing from_commit optimizations.

go-mysql-server

  • 1546: add information_schema.parameters table
    Added information_schema.parameters table.
    Removing grant option privileges being granted incorrectly in grant all statement.
  • 1545: Merge join panicked with non-comparator filter expression
    Merge joins are only created with a subset of expression.Comparer filters today (EQUALS). We previously expected a single comparer filter at exec time. But when there are multiple filters, the parent filter expression will be an AND, and the type cast fails.
    Instead of force casting the filter to a comparer during exec iter building, we will now expect a conjunction of comparers. For simplicity, we join on the first filter and add a parent filter iter with the rest. Alternatively, we could limit merge joins to single filters, or expend the memo to accommodate filters moved out of join conditions during join exploration.
  • 1544: fix for information schema tables collation and charset values
  • 1543: Validate lookup selection before adding to memo
  • 1542: Support decimal literals.
    Fixes https://github.com/dolthub/dolt/issues/5068
  • 1541: truncate really long queries
  • 1540: Validate the lookup expression for indexedTableAccess
    The interface for converting a table scan to an indexedTableAccess disregarded whether the index implementation supported a specific type of range expression. The introduction of commit hash indexes for system tables requires us to prevent arbitrary range lookups, permitting only point lookups.
  • 1535: add some information_schema privileges and constants tables
    Tables added:
    • SCHEMA_PRIVILEGES
    • TABLE_PRIVILEGES
    • USER_PRIVILEGES
    • KEYWORDS
    • ST_GEOMETRY_COLUMNS
    • ST_SPATIAL_REFERENCE_SYSTEMS
    • SCHEMATA_EXTENSIONS
    • ST_UNITS_OF_MEASURE
    • USER_ATTRIBUTES - attributes column is missing.
    • COLUMNS_EXTENSIONS - engine_attribute and secondary_engine_attribute are reserved for future use.
    • TABLES_EXTENSIONS - engine_attribute and secondary_engine_attribute are reserved for future use.
    • TABLES_CONSTRAINTS_EXTENSIONS - engine_attribute and secondary_engine_attribute are reserved for future use.

Closed Issues

  • 5068: dolt doesn't handle large numbers without a cast
dolt - 0.52.6

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5160: change --out-and-err to append to existing file
  • 5157: Fix call DOLT_VERIFY_CONSTRAINTS() false-positive
    Fix for bug reported by Fritter in Discord.
    Here's what happened:
    • Parent table has a simple pk
    • Child table has a compound pk of length 3
    • The foreign key is a single int column. It is the first column in the child table's pk, and the only column of parent's pk.
    • No additional indexes are defined because we can reuse the pk index.
      If we reuse the pk index, we have some special case code that builds a fake index definition. The issue is that we happened to pass sorted tags of the pks, instead the column-order tags. We then use the index definition to prefix iter secondary indexes.
      This issue would not appear if you got lucky with the tags of your columns. Specifically, the sorted tag order had to match the tag order. For tables with one pk, this is always the case, and for the test we have for two pks, we also happen to get lucky. Unfortunately, Fritter has three column compound pk and he did not get lucky.
  • 5152: go/libraries/doltcore/sqle/read_replica_database.go: Optimize the sql-server read replica case when syncing a lot of new branches.
    We already fetch all the new commits we need at once. Some lingering code had us refetching the commit values themselves from the upstream instead of directly setting the new branch to the commit hash which we just fetched.

go-mysql-server

  • 1541: truncate really long queries
  • 1539: if privilegeSet is nil, return empty row for info schema tables
    • privilegeSet was nil for ld repository tests as there were no privileges granted and was trying to test on information_schema.views table.
    • the now exported method is used in ld to grant all privileges for the test user
      fixes test in https://github.com/dolthub/ld/pull/12642

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.71 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.18 4.65 3.9
index_join_scan 1.14 4.03 3.5
index_scan 30.81 53.85 1.7
oltp_point_select 0.16 0.48 3.0
oltp_read_only 3.02 8.43 2.8
select_random_points 0.31 0.77 2.5
select_random_ranges 0.36 1.14 3.2
table_scan 30.81 63.32 2.1
types_table_scan 69.29 189.93 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.71 18.95 7.0
oltp_insert 1.44 3.82 2.7
oltp_read_write 5.18 26.2 5.1
oltp_update_index 1.47 8.58 5.8
oltp_update_non_index 1.47 9.56 6.5
oltp_write_only 2.26 15.27 6.8
types_delete_insert 2.81 20.74 7.4
writes_mean_multiplier 5.3
Overall Mean Multiple 3.7
dolt - 0.52.5

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5147: go/store: Speed up sanity checks in nbs.Store
  • 5146: go/libraries/doltcore/sqle: read_replica_database: Retry optimistic lock failures on read replica databases when updating our working set.
  • 5140: go/store/nbs: store.go: Fix some races in usage of waitForGC.
  • 5132: connect to remote branch not existent locally
    If the branch in the connection string is not available as local branch, try to find remote tracking branch that matches the defined branch name. If there is only one match, it creates local branch from that remote tracking branch and sets its upstream to it. If there are multiple remotes with the same branch names, it errors. For now, we assume there will not be remote name provided in the connection string, only <db_name>/<branch_name> is allowed.
  • 5123: Added CALL ... AS OF
  • 5114: add "create database" header to dolt dump sql files
    automatically adds CREATE DATABASE IF NOT EXISTS ...; USE db; to all dolt dump sql files, preventing errors from importing to dolt in non database directories
    fixes: https://github.com/dolthub/dolt/issues/4837
  • 5074: fixes for changes on info_schema tables
    Depends on https://github.com/dolthub/go-mysql-server/pull/1501

go-mysql-server

  • 1539: if privilegeSet is nil, return empty row for info schema tables
    • privilegeSet was nil for ld repository tests as there were no privileges granted and was trying to test on information_schema.views table.
    • the now exported method is used in ld to grant all privileges for the test user
      fixes test in https://github.com/dolthub/ld/pull/12642
  • 1532: implement st_within() for Point
    Part 1/7
    This is the implementation of st_within(sql.Point(), <any geometry>).
    MySQL Reference
    The other geometry types are left as unsupported for now, to both reduce the size of the PR and because they're hard...
  • 1528: Decorrelate filtered subqueries with single rel
    This decorrelates simple single relation scopes with filter expressions. Unnesting scopes can have dramatic effects on join planning. For the query that motivated this work (a changed integration query plan), latency went from 90 seconds -> 2 seconds.
    This PR uses a SelectSingleRel node to represent the folded scope, which passes through join planning before being converted back into Filter(Table) by normalizeSelectSingleRel after all rules.
  • 1526: Added CALL ... AS OF
  • 1501: verify and add more info schema tables
    Complete tables:
    • Fixed and verified row values for tables: TRIGGERS, CHECK_CONSTRAINTS, KEY_COLUMN_USAGE, KEY_COLUMN_USAGE, TABLE_CONSTRAINTS and SCHEMATA
    • Added REFERENTAIL_CONSTRAINTS table
      Fixed, but has missing info tables:
    • TABLES - missing columns/does not match MySQL values: avg_row_length, data_length, max_data_length, max_data_length, data_free
    • ROUTINES - missing stored functions
    • VIEWS - view_definition value does not match MySQL
      Changes:
    • added CreateViewStmt member to View definition to keep the information for algorithm, definer and security when it's created first. These are needed for information_schema.views table.
    • added PeekNextAutoIncrementValue to AutoIncrementTable interface for getting the next auto_increment value without incrementing the current value. This is implemented for both memory.Table and WritableDoltTable.

vitess

  • 214: Added CALL ... AS OF
  • 213: Added additional CASE form
    Forgot that there are two forms to CASE statements, so I added the missing version.

Closed Issues

  • 5097: Slow importing with foreign keys
  • 5108: [Feature Request] Consider branch auto-fetch on connection for replicas
  • 4837: add create database header to dolt dump sql file
  • 5106: Integrate pull request preview environments

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.0 2.76 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.16 4.74 4.1
index_join_scan 1.12 4.03 3.6
index_scan 30.26 53.85 1.8
oltp_point_select 0.15 0.48 3.2
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.77 2.6
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 63.32 2.1
types_table_scan 69.29 189.93 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 3.62 17.01 4.7
oltp_insert 1.86 3.68 2.0
oltp_read_write 5.47 26.2 4.8
oltp_update_index 1.82 7.17 3.9
oltp_update_non_index 1.82 8.28 4.5
oltp_write_only 2.66 15.27 5.7
types_delete_insert 3.82 16.71 4.4
writes_mean_multiplier 3.9
Overall Mean Multiple 3.2
dolt - 0.52.4

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5131: Add merge.GetForeignKeyViolatedTables
    Refactors merge.AddForeignKeyViolations by creating merge.GetForeignKeyViolations and the FKViolationReceiver interface.
    Previously, our mechanic to check if edits to a root value created constraint violations was to write the constraint violations to the artifacts table and check if it was empty for all tables.
    Instead, we can now do a read-only operation to get constraint violations created by edits to a root value.
  • 5130: go/store/{blobstore, nbs}: Fix blobstore conjoin

go-mysql-server

  • 1530: mysql_db: binlog replication configuration table
    binlog replication requires a persistent store for replication configuration so that a server can be restarted and still retain the replication configuration settings a user provided. MySQL uses a table in the mysql database for this, so I've added that table to our implementation of mysql_db.
    I added a test for the new table's schema, but skipped the JSON loading test that other entities implemented, since I think the JSON serialization support is deprecated and everything is serializing through flatbuffers now. Happy to implement that test if it's still need though.
  • 1529: Fix resolve subq issue with empty parent scope
  • 1528: Decorrelate filtered subqueries with single rel
    This decorrelates simple single relation scopes with filter expressions. Unnesting scopes can have dramatic effects on join planning. For the query that motivated this work (a changed integration query plan), latency went from 90 seconds -> 2 seconds.
    This PR uses a SelectSingleRel node to represent the folded scope, which passes through join planning before being converted back into Filter(Table) by normalizeSelectSingleRel after all rules.

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.03 2.97 1.5
groupby_scan 12.98 17.63 1.4
index_join 1.27 5.0 3.9
index_join_scan 1.21 4.41 3.6
index_scan 32.53 58.92 1.8
oltp_point_select 0.16 0.53 3.3
oltp_read_only 3.13 9.39 3.0
select_random_points 0.31 0.84 2.7
select_random_ranges 0.37 1.23 3.3
table_scan 32.53 65.65 2.0
types_table_scan 73.13 200.47 2.7
reads_mean_multiplier 2.7
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.86 12.08 4.2
oltp_insert 1.39 3.07 2.2
oltp_read_write 5.37 18.28 3.4
oltp_update_index 1.5 5.67 3.8
oltp_update_non_index 1.5 6.21 4.1
oltp_write_only 2.3 8.74 3.8
types_delete_insert 3.02 13.7 4.5
writes_mean_multiplier 3.4
Overall Mean Multiple 3.0
dolt - 0.52.3

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

go-mysql-server

  • 1529: Fix resolve subq issue with empty parent scope
  • 1527: Catch missed antijoins
    A resolve irregularity tries to resolve subqueries before resolving the outer scope. The result was subscopes with off-by-scope index field counts. Add a skip to delay this so we can catch more cacheable subqueries for decorrelation. A proper fix will need to rewrite resolve and field setting rules.
    The runtime for the query of interest reduces from 29 min -> 18 min, despite the second breaking the join hint order.
  • 1521: implementing more st_... functions
    implements:

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.03 2.97 1.5
groupby_scan 13.46 17.95 1.3
index_join 1.27 5.0 3.9
index_join_scan 1.21 4.25 3.5
index_scan 32.53 59.99 1.8
oltp_point_select 0.16 0.52 3.2
oltp_read_only 3.13 9.39 3.0
select_random_points 0.32 0.83 2.6
select_random_ranges 0.37 1.23 3.3
table_scan 33.12 66.84 2.0
types_table_scan 75.82 204.11 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.91 11.87 4.1
oltp_insert 1.42 3.13 2.2
oltp_read_write 5.37 17.95 3.3
oltp_update_index 1.44 5.47 3.8
oltp_update_non_index 1.39 5.99 4.3
oltp_write_only 2.3 8.58 3.7
types_delete_insert 2.97 13.22 4.5
writes_mean_multiplier 3.4
Overall Mean Multiple 2.9
dolt - 0.52.2

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5122: go/store/{blobstore,nbs}: Refactor Blobstore interface to work in multi-db mode
    Currently in nbs/store.go NewBSStore() initializes a blobstoreManifest with a static name "manifest". The manifestManager uses this name as a key to cache memory copies of manifestContents. In multi-db mode, this causes disparate manifestContents to clobber each other.
  • 5119: go/libraries/doltcore/remotesrv: Reducing logging verbosity.
    Over time some trace logging snuck into remotesrv. At the same time, the logs were not as useful as they could have been and did not make use of log levels. Clean things up a bit to log more information about the amount of work done in some of the requests without being overly verbose.
  • 5116: go/libraries/doltcore/remotestorage: chunk_store: Fix semantics of Rebase and Root. Root stays fixed until a Rebase call.
    When remotestorage.DoltChunkStore was originally written, it forwarded all ChunkStore calls to the remotesapi. In reality, a client should expect a snapshot of the database on open, and the root should only change when Rebase() or Commit() is called. This fixes up that initial flaw. Rebase() becomes a refresh of the Root from the gRPC service, and Root() itself is just a read of the cached root hash.
    This reduces unnecessary traffic to the remotestorage service and improves performance of things like sql-server read replicas.
  • 5105: add --schema-only flag for dolt dump
    --schema-only is used for dump table schemas with no data into sql file.

go-mysql-server

  • 1524: Fix empty cachedResult/existIter issues
    MAX_1_ROW no longer uses a CachedResult, and eagerly loads its child on the first call RowIter(). Three things can happen:
    1. the child returns one row, which we cache in the node state
    2. the child returns zero rows, which we note with a flag in the node state
    3. the child returns more than one row, and we error
      RowIter returns the result row or an emptyIter if no child rows were returned. The emptyIter sentinal is important for antiJoin correctness and join short-circuit performance.
      Original error from system table benchmarks:
    error running query {connectTime=2023-01-07T01:12:10Z, connectionDb=sbtest, error=attempted to call RowIter() on a disposed Node: *plan.CachedResults, query=select * from dolt_commit_ancestors where commit_hash = (select commit_hash from dolt_log limit 1 offset 599)}
    
  • 1523: Change coster for non-stats tables
    dolt side https://github.com/dolthub/dolt/pull/5112
  • 1522: Fixed ENUM issue when using INSERT INTO ... SELECT
  • 1521: implementing more st_... functions
    implements:
  • 1520: implementing st_distance
    MySQL docs: https://dev.mysql.com/doc/refman/8.0/en/spatial-relation-functions-object-shapes.html#function_st-distance

Closed Issues

  • 5094: support dolt dump --schema-only

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.03 2.91 1.4
groupby_scan 12.98 17.95 1.4
index_join 1.25 5.0 4.0
index_join_scan 1.21 4.18 3.5
index_scan 31.94 59.99 1.9
oltp_point_select 0.16 0.53 3.3
oltp_read_only 3.07 9.22 3.0
select_random_points 0.32 0.83 2.6
select_random_ranges 0.36 1.21 3.4
table_scan 32.53 66.84 2.1
types_table_scan 73.13 200.47 2.7
reads_mean_multiplier 2.7
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.97 11.04 3.7
oltp_insert 1.47 3.07 2.1
oltp_read_write 5.37 18.28 3.4
oltp_update_index 1.44 5.0 3.5
oltp_update_non_index 1.44 5.37 3.7
oltp_write_only 2.26 8.74 3.9
types_delete_insert 3.02 11.45 3.8
writes_mean_multiplier 3.1
Overall Mean Multiple 2.9
dolt - 0.52.1

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5112: Log table count
    GMS side: https://github.com/dolthub/go-mysql-server/pull/1523
  • 5111: go/libraries/doltcore/sqle: database_provider.go: Reuse ReadReplicaDatabase's upstream DoltDB instance in is{Branch,Tag} instead of creating a new one.
    Calling remote.GetRemoteDB() creates a new gRPC connection pool, a new HTTP connection pool, a new chunk cache for the returned DoltDB, etc. There should only be one instance of the upstream DoltDB for the ReadReplicaDatabase, and we can just use the one we have to check for branch and tag existence.
  • 5109: InSubquery bump
  • 5104: Change current README edit to be more out of band
    I was not a fan of the wording of the previous edit but thought the intent was good.
  • 5088: add error message for dolt commit failures
    adds additional error message when the dolt commit editor fails to open
    fixes: https://github.com/dolthub/dolt/issues/5060
  • 5077: Bump github.com/aws/aws-sdk-go from 1.32.6 to 1.33.0 in /go
    Bumps github.com/aws/aws-sdk-go from 1.32.6 to 1.33.0.

go-mysql-server

  • 1523: Change coster for non-stats tables
    dolt side https://github.com/dolthub/dolt/pull/5112
  • 1517: Added the remaining statements for stored procedures
    Also added labels to BEGIN...END blocks, which were missing.
  • 1511: Fix nested subquery expression caching regression
  • 1510: verify and fix info schema tables - 2
    • Complete tables:
      CHARACTER_SETS
      COLLATIONS
      ENGINES - only the InnoDB engine is supported
      SCHEMATA
      COLLATION_CHARACTER_SET_APPLICABILITY
    • Some info missing:
      COLUMN_STATISTICS - histogram json column only has buckets key values.
      PROCESSLIST - status is not defined completely; "Query" command is supported only.
  • 1509: Remove IndexedInSubqueryFilter, add SemiLookupJoin, AntiJoin
    • IN_SUBQUERY and EQUALS_SUBQUERY (and NOT ...) are converted to joins when the subquery does not reference the outer scope
    • RIGHT_SEMI_JOIN and RIGHT_SEMI_LOOKUP_JOIN are added as a replacement for IndexedInSubqueryFilter
    • MAX_1_ROW added for runtime-enforcement, previously handled by EvalMultiple
    • fix various bugs in join iter and lookup generation
      Note:
    • RIGHT_SEMI_LOOKUP_JOIN is only safe when the left side of the join is converted into a unique index lookup, otherwise duplicate rows will have been missed
      TODO:
    • selection, projection, etc rearrangements moving towards JoinApply for correlated expressions
    • collapse scopes without losing MAX_1_ROW enforcement
    • deduplicate tables in joins without losing MAX_1_ROW and row duplication constraints

vitess

  • 213: Added additional CASE form
    Forgot that there are two forms to CASE statements, so I added the missing version.
  • 212: add GRANT OPTION for GRANT STATEMENTS
  • 211: Added last statements for stored procedures
    Of note, RETURN is used by stored functions and not stored procedures, but I added it anyway since it was super simple and we'll need it at some point.
  • 210: Grammar updates for replication statements
    Adds support for:
    • CHANGE REPLICATION SOURCE TO
    • START REPLICA
    • STOP REPLICA
    • SHOW REPLICA STATUS

Closed Issues

  • 5106: Integrate pull request preview environments
  • 5060: Bad config error when trying to merge
  • 5102: Can't drop not null constraint from this schema with unique keys

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.03 2.91 1.4
groupby_scan 12.75 17.63 1.4
index_join 1.25 5.0 4.0
index_join_scan 1.18 4.25 3.6
index_scan 32.53 59.99 1.8
oltp_point_select 0.16 0.53 3.3
oltp_read_only 3.19 9.39 2.9
select_random_points 0.32 0.84 2.6
select_random_ranges 0.37 1.23 3.3
table_scan 32.53 65.65 2.0
types_table_scan 74.46 200.47 2.7
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 3.13 11.87 3.8
oltp_insert 1.58 3.07 1.9
oltp_read_write 5.67 18.28 3.2
oltp_update_index 1.64 5.67 3.5
oltp_update_non_index 1.58 6.09 3.9
oltp_write_only 2.48 8.9 3.6
types_delete_insert 3.3 13.46 4.1
writes_mean_multiplier 3.1
Overall Mean Multiple 2.8
dolt - 0.52.0

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5091: go/store/nbs: fixed manifest flush check
  • 5089: counting milliseconds wrong

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.0 2.91 1.5
groupby_scan 12.75 17.63 1.4
index_join 1.25 5.0 4.0
index_join_scan 1.18 4.25 3.6
index_scan 31.94 59.99 1.9
oltp_point_select 0.16 0.53 3.3
oltp_read_only 3.07 9.22 3.0
select_random_points 0.32 0.83 2.6
select_random_ranges 0.37 1.21 3.3
table_scan 32.53 65.65 2.0
types_table_scan 74.46 204.11 2.7
reads_mean_multiplier 2.7
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.66 11.87 4.5
oltp_insert 1.3 3.07 2.4
oltp_read_write 5.28 17.95 3.4
oltp_update_index 1.34 5.67 4.2
oltp_update_non_index 1.3 6.09 4.7
oltp_write_only 2.18 8.74 4.0
types_delete_insert 2.71 13.46 5.0
writes_mean_multiplier 3.7
Overall Mean Multiple 3.1
dolt - 0.51.15

Published by github-actions[bot] almost 2 years ago

Merged PRs

dolt

  • 5084: update maven version
  • 5064: adding --set as valid flag for dolt config
    Adds --set as a valid flag for dolt config. --set does the same as --add.
    fixes: https://github.com/dolthub/dolt/issues/5050
  • 5061: gms bump for merge join
    GMS PR: https://github.com/dolthub/go-mysql-server/pull/1499
  • 5049: fix panic for select active_branch() on revision db
    fix for: https://github.com/dolthub/dolt/issues/5043
    it errors now
  • 5048: docs(README): add info about sql command

    changes:

    • make an sql
    • note that this is an sql command
    • note that the exactly steps done later

    why:

    • i was typing dolt create database and got error ... and searched what is the right syntax for dolt command to make the step "create an database" at this point - but this was not nessesary at this point, because its explained later

    suggestion:

    • remove this lines or do a better rewording, so that an user not think he need to do here something.

    Note:

    added also this PR for the docs: https://github.com/dolthub/docs/pull/1095
  • 5039: Use session-level transactions
    Incidentally also re-implements database session initialization
  • 5037: makes batching default for dolt dump
    Currently dolt dump only batches INSERT statements when the --batch flag is included. This change flips the behavior to default to batching INSERT statements with the --batch flag now turning off this behavior.
    fixes: https://github.com/dolthub/dolt/issues/4954
  • 4969: Removed deprecated dolt functions

go-mysql-server

  • 1511: Fix nested subquery expression caching regression
  • 1507: typos
  • 1505: Bug fix for null handling in group by
    Fixes: https://github.com/dolthub/go-mysql-server/issues/1503
  • 1504: Rewrote readme and related docs
  • 1502: add support for features and feature collection for geojson
    make our st_geomfromgeojson() parse formats that contain type Feature and FeatureCollection
    reference: https://www.rfc-editor.org/rfc/rfc7946 (sections 3.2 and 3.3)
  • 1499: merge join
    dolt bump: https://github.com/dolthub/dolt/pull/5061
  • 1498: /{go.sum, sql}: allow time conversions for golang zero time
    https://go.dev/play/p/nzS0vAAI5yd
    remove call of time.IsZero() to allow 0001-01-01 00:00:00 as valid datetime.
  • 1494: add 'privileges' column for information_schema.columns table
    Made information_schema database and its tables accessible to all users.
    Note:
    • column privileges is not supported yet.
    • view columns not supported yet.
  • 1489: Greatly simplified stored procedure analyzing and variable referencing
    Practically everything is implemented using interfaces now, so we're not special casing every node that has some sort of "divergent" behavior from a standard sql.Node. Additionally, instead of associating every variable with a global id, there's a sort of stack implementation using nested scopes while executing a stored procedure. This simplifies analysis (the step assigning ids now just validates) and makes it easier to add the remaining stored procedure statements.
  • 1346: Altered the transaction interface to occur on the Session instead of on a Database
    This work is preparatory to supporting multiple databases in a single transaction.
    Also rewrites much of test engine test setup.

vitess

  • 210: Grammar updates for replication statements
    Adds support for:
    • CHANGE REPLICATION SOURCE TO
    • START REPLICA
    • STOP REPLICA
    • SHOW REPLICA STATUS
  • 208: Allow charsets/collations in single or double quotes for create database/alter database
    Fixes: https://github.com/dolthub/dolt/issues/4977

Closed Issues

  • 5050: In dolt config, make --set an alias/substitute for --add to match git's behavior
  • 5043: select active_branch() panics when using revision dbs
  • 4954: dolt dump should batch inserts
  • 3717: Support describe for information_schema tables
  • 1503: panic: interface conversion: interface {} is nil, not string group by collation
  • 247: Memory table should error on UPDATE when it generates duplicate keys
  • 1200: Testify getting included in binary builds.

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.03 2.86 1.4
groupby_scan 12.75 17.95 1.4
index_join 1.25 5.0 4.0
index_join_scan 1.21 4.25 3.5
index_scan 31.94 59.99 1.9
oltp_point_select 0.16 0.53 3.3
oltp_read_only 3.13 9.22 2.9
select_random_points 0.31 0.83 2.7
select_random_ranges 0.37 1.21 3.3
table_scan 31.94 65.65 2.1
types_table_scan 73.13 200.47 2.7
reads_mean_multiplier 2.7
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 3.3 11.45 3.5
oltp_insert 1.58 2.97 1.9
oltp_read_write 5.67 18.28 3.2
oltp_update_index 1.64 5.28 3.2
oltp_update_non_index 1.58 5.67 3.6
oltp_write_only 2.39 9.06 3.8
types_delete_insert 3.49 12.52 3.6
writes_mean_multiplier 3.0
Overall Mean Multiple 2.8