Merged PRs
dolt
- 6323: Bug Fix: Merge with convergent schema changes
There were a couple of gaps in our schema merge logic and testing when convergent schema changes happen on both sides of a merge. This change fixes an issue where columns could be omitted if they changed in exactly the same way, and also an issue with spurious FK conflicts if identical FKs were added on both sides of a merge. - 6317: Fix intermittent BATS failure
Fix intermittent BATS failure that happens when a tag like "v2" appears in the commit hash. - 6311: During CWBHeadRef/SetCWBHeadRef, surface RSLoadErr if it is present.
This avoids the panic seen in #6306 by surfacing the un-processed errorRSLoadErr
during CWBHeadRef/SetCWBHeadRef calls. - 6310: go/go.mod: Bump zap and cloud.google.com/go/storage.
- 6302: Add more node integration tests for the hosted workbench
- 6299: Migrate
dolt tag
to use SQL
This change updatesdolt tag
command to use only SQL.
Related: #3922 - 6296: Migrate
dolt revert
to sql backend- Update the
dolt revert
command to use dolt_revert() stored procedure. - Update dolt_revert() stored procedure to respect the dolt_ignore table
- Add dolt_revert() dedicated engine tests
dolt revert
bats tests enabled for remote testing
#3922
- Update the
- 6281: return commit hash for
dolt_merge()
when--no-ff
is not specified
Fix a bug where we didn't return the commit hash fordolt_merge()
when the --no-ff argument wasn't specified, and we performed a non-ff merge.
Made it so that fast-forward merged will also return the new HEAD commit hash.
Additionally, changed many enginetests to use the newDoltCommitType
to validate dolt commit hashes.
Also prevents panics when doingcall dolt_merge()
.
Companion PR:
dolthub/go-mysql-server#1865 - 6278: Bump google.golang.org/grpc from 1.29.1 to 1.53.0 in /go/gen/proto/dolt/services/eventsapi
Bumps google.golang.org/grpc from 1.29.1 to 1.53.0. - 6252: Set the DB name on the sql.Context when in remote mode
The SQL.Context used in the remote connection case is kind of an empty shell since the connection has all the details for working with the DB. One side effect of having a dummy sql.Context was not having the database name set in the context. The shell uses it to set it's prompt, but this could have ramifications elsewhere we haven't discovered.
No new tests - we don't have expect set up for this tool yet, and I don't want to block on this improvement which is fairly harmless if the existing tests pass.
#6246 - 6209: Migrate
dolt checkout
to new CLI framework.
This PR migrates dolt branch to invoke SQL commands instead of manipulating the database directly. This allows it to work even on remote connections.
We implement this by adding an additional flag to thedolt_checkout
stored proceudre:--global
. This tells the SQL environment to persist this checkout for subsequent connections, making it the new default branch for future connections.
If a server is currently running,dolt_checkout("--global")
will return an error. This is because we try to avoid changing the default branch on a server until we can properly consider the indented effect on existing connections.
Because working sets behave differently in our SQL environment than the command line (command line has a single working set, SQL land has a working set per-branch), we only permit changing the default branch when there would be no observable different in behavior: that is, when both the former and the new branch are clean. If this isn't the case, we return an error. This guarentees that a user callingdolt checkout
from the command line will never see behavior that differs from the original CLI implementation. They will, at worst, get a helpful error message.
go-mysql-server
- 1873: Supporting
mysql.help_
tables
This first pass adds the table schemas to themysql
database forhelp_keyword
,help_category
,help_topic
, andhelp_relation
. There is no support for data in the tables yet; we're starting with just table schemas to see if that's enough for tool compatibility.
Related to: #6308
I still need to do acceptance testing with the exact repro in the issue linked above. I'll follow up with Max on that tomorrow to confirm. I'm hoping just supporting the schema will be enough for the FusionAuth tool, but we may end up needing to populate these tables, too. - 1865: Add CustomValidator interface
In many places we expect to see a commit hash in our result.
Since the hashes take into account the system time when computing, it is difficult to predict what they will be.
This PR adds a new interface that can be implemented on the dolt side to check for commit hashes.
vitess
- 254: Fix for using unqouted reserved words ('count' specifically) in the VALUES function
- 253: Automatically concatenate adjacent string literals
Fixes #5232
This is to match the mysql behavior:The grammar can't accommodate this so it has to go in the lexer. It doesn't work if the strings are broken up by a mysql special comment, so we still have to special case that.mysql> select "a" 'b' "c"; +-----+ | a | +-----+ | abc | +-----+
Also removed support for using string literals as table aliases. MySQL has a mode to support using double-quoted strings only as identifiers, but it's not on by default and isn't supported anywhere else in the grammar.
Closed Issues
- 6155: Feature Request: Is there any chance to support Supabase or VectorDB?
- 6306: Panic during status check on db that failed to clone
Latency
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.89 | 2.71 | 1.4 |
groupby_scan | 12.08 | 16.71 | 1.4 |
index_join | 1.16 | 4.33 | 3.7 |
index_join_scan | 1.12 | 2.11 | 1.9 |
index_scan | 30.26 | 55.82 | 1.8 |
oltp_point_select | 0.14 | 0.46 | 3.3 |
oltp_read_only | 2.86 | 7.98 | 2.8 |
select_random_points | 0.29 | 0.75 | 2.6 |
select_random_ranges | 0.35 | 1.08 | 3.1 |
table_scan | 30.81 | 56.84 | 1.8 |
types_table_scan | 69.29 | 158.63 | 2.3 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.0 | 5.88 | 1.2 |
oltp_insert | 2.39 | 2.86 | 1.2 |
oltp_read_write | 6.43 | 15.27 | 2.4 |
oltp_update_index | 2.52 | 3.02 | 1.2 |
oltp_update_non_index | 2.52 | 2.97 | 1.2 |
oltp_write_only | 3.55 | 7.43 | 2.1 |
types_delete_insert | 4.74 | 6.55 | 1.4 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|