Bot releases are visible (Hide)
Published by github-actions[bot] over 1 year ago
--
to escape arg parsingdolt_patch
dolt_patch()
to:
-b
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 2.97 | 1.4 |
groupby_scan | 12.98 | 17.95 | 1.4 |
index_join | 1.27 | 4.74 | 3.7 |
index_join_scan | 1.21 | 2.26 | 1.9 |
index_scan | 32.53 | 58.92 | 1.8 |
oltp_point_select | 0.14 | 0.47 | 3.4 |
oltp_read_only | 2.71 | 8.13 | 3.0 |
select_random_points | 0.31 | 0.78 | 2.5 |
select_random_ranges | 0.37 | 1.14 | 3.1 |
table_scan | 33.12 | 58.92 | 1.8 |
types_table_scan | 74.46 | 170.48 | 2.3 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 6.09 | 6.55 | 1.1 |
oltp_insert | 2.86 | 3.07 | 1.1 |
oltp_read_write | 6.55 | 15.83 | 2.4 |
oltp_update_index | 2.86 | 3.19 | 1.1 |
oltp_update_non_index | 2.97 | 3.19 | 1.1 |
oltp_write_only | 3.82 | 7.84 | 2.1 |
types_delete_insert | 5.37 | 7.17 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
sql
command to allow starting without a DB. Enables connecting to an empty repo so you can CREATE DATABASE FOO
.dolt merge
to use the appropriate sql engine to generate results.%v
format option in the fmt
packages defaults to scientific notation, so like 1.234e567
.%f
option doesn't work very well, as it likes to append .00000
.strconv.FormatFloat
does what we want, so I just picked that.mysql.help_
tablesmysql
database for help_keyword
, help_category
, help_topic
, and help_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.LATERAL
syntaxRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 2.97 | 1.4 |
groupby_scan | 12.98 | 18.28 | 1.4 |
index_join | 1.25 | 4.82 | 3.9 |
index_join_scan | 1.21 | 2.26 | 1.9 |
index_scan | 33.12 | 59.99 | 1.8 |
oltp_point_select | 0.14 | 0.47 | 3.4 |
oltp_read_only | 2.71 | 8.13 | 3.0 |
select_random_points | 0.31 | 0.8 | 2.6 |
select_random_ranges | 0.37 | 1.14 | 3.1 |
table_scan | 33.12 | 59.99 | 1.8 |
types_table_scan | 74.46 | 170.48 | 2.3 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 4.74 | 5.99 | 1.3 |
oltp_insert | 2.43 | 2.97 | 1.2 |
oltp_read_write | 6.21 | 15.55 | 2.5 |
oltp_update_index | 2.43 | 3.07 | 1.3 |
oltp_update_non_index | 2.39 | 2.97 | 1.2 |
oltp_write_only | 3.49 | 7.7 | 2.2 |
types_delete_insert | 4.74 | 6.67 | 1.4 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
This release contains backwards incompatible changes:
dolt_merge()
procedure now is able to merge with a dirty working set if no conflicts will occur. This differs from the previous behavior which would always fail a merge if there are any uncommitted changes in the working set.Per Dolt’s versioning policy, this is a minor version bump because users of dolt_merge()
results will need to be aware of this new behavior.
mkdir foobar
cd foobar
dolt sql-server
dolt sql
> select 1;
And panic() follows. This actually happens for any command, so create database dba
included.dolt_merge
to allow dirty working sets with no conflictsdolt_merge
stored procedure doesn't allow any uncommitted changes in the working set, it will abort the merge if any are found. However the CLI (and git) allows uncommitted changes in the working set if they won't get stomped by the merge. This change updates the dolt_merge
stored procedure to allow that.dolt_merge
to allow dirty working sets with no conflicts by @stephkyou in https://github.com/dolthub/dolt/pull/6344
Full Changelog: https://github.com/dolthub/dolt/compare/v1.7.6...v1.8.0
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.03 | 3.02 | 1.5 |
groupby_scan | 12.98 | 17.95 | 1.4 |
index_join | 1.3 | 4.82 | 3.7 |
index_join_scan | 1.23 | 2.3 | 1.9 |
index_scan | 32.53 | 58.92 | 1.8 |
oltp_point_select | 0.14 | 0.47 | 3.4 |
oltp_read_only | 2.71 | 8.13 | 3.0 |
select_random_points | 0.31 | 0.8 | 2.6 |
select_random_ranges | 0.37 | 1.14 | 3.1 |
table_scan | 33.12 | 58.92 | 1.8 |
types_table_scan | 74.46 | 170.48 | 2.3 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 6.32 | 6.43 | 1.0 |
oltp_insert | 2.76 | 3.19 | 1.2 |
oltp_read_write | 6.55 | 15.83 | 2.4 |
oltp_update_index | 3.02 | 3.19 | 1.1 |
oltp_update_non_index | 2.81 | 3.19 | 1.1 |
oltp_write_only | 3.96 | 7.84 | 2.0 |
types_delete_insert | 5.47 | 7.04 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
nc
to check if port is in use rather than lsof
dolt checkout
can't work with a server running on a local database. There are more details to be sorted out with session persistence in the server which aren't addressed yet.dolt clean
command doesn't have is tests, and neither does the dolt_clean() procedure for that matter. Unfortunately, the command experience itself isn't great, and differs significantly from git clean
(https://github.com/dolthub/dolt/issues/6313). So instead of spending time on testing and a full rewrite of dolt clean
, I'm making this small tactical change to do nothing but the migration.dolt sql
prompt is missing the current db when a server is runningmysql.help_topic
not found errorRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.07 | 3.07 | 1.5 |
groupby_scan | 12.98 | 17.95 | 1.4 |
index_join | 1.25 | 4.74 | 3.8 |
index_join_scan | 1.18 | 2.26 | 1.9 |
index_scan | 33.12 | 58.92 | 1.8 |
oltp_point_select | 0.14 | 0.47 | 3.4 |
oltp_read_only | 2.66 | 7.98 | 3.0 |
select_random_points | 0.3 | 0.78 | 2.6 |
select_random_ranges | 0.36 | 1.14 | 3.2 |
table_scan | 33.12 | 58.92 | 1.8 |
types_table_scan | 75.82 | 170.48 | 2.2 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 6.09 | 6.21 | 1.0 |
oltp_insert | 2.71 | 3.19 | 1.2 |
oltp_read_write | 6.32 | 15.55 | 2.5 |
oltp_update_index | 2.81 | 3.19 | 1.1 |
oltp_update_non_index | 2.97 | 3.19 | 1.1 |
oltp_write_only | 3.96 | 7.84 | 2.0 |
types_delete_insert | 5.88 | 6.91 | 1.2 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
RSLoadErr
during CWBHeadRef/SetCWBHeadRef calls.dolt tag
to use SQLdolt tag
command to use only SQL.dolt revert
to sql backend
dolt revert
command to use dolt_revert() stored procedure.dolt revert
bats tests enabled for remote testingdolt_merge()
when --no-ff
is not specifieddolt_merge()
when the --no-ff argument wasn't specified, and we performed a non-ff merge.DoltCommitType
to validate dolt commit hashes.call dolt_merge()
.dolt checkout
to new CLI framework.dolt_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.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.dolt 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.mysql.help_
tablesmysql
database for help_keyword
, help_category
, help_topic
, and help_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.mysql> select "a" 'b' "c";
+-----+
| a |
+-----+
| abc |
+-----+
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.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 |
---|
Published by github-actions[bot] over 1 year ago
__LD_1__
file format, so the backwards compatibility tests right now are only testing against massively out of date and unsupported versions of DOLT.dolt cherry-pick
to only use SQLdolt cherry-pick
to only use SQL.mysql> select "a" 'b' "c";
+-----+
| a |
+-----+
| abc |
+-----+
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.CREATE TABLE
portion in their non-string form. This adds support for the string form.CONVERT USING <collation>
syntaxprimary key (password)
requires password to be backtickedRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.93 | 2.66 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.21 | 4.33 | 3.6 |
index_join_scan | 1.14 | 2.14 | 1.9 |
index_scan | 30.26 | 55.82 | 1.8 |
oltp_point_select | 0.15 | 0.46 | 3.1 |
oltp_read_only | 2.86 | 7.98 | 2.8 |
select_random_points | 0.3 | 0.75 | 2.5 |
select_random_ranges | 0.35 | 1.08 | 3.1 |
table_scan | 30.81 | 55.82 | 1.8 |
types_table_scan | 69.29 | 158.63 | 2.3 |
reads_mean_multiplier | 2.3 |
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.91 | 1.2 |
oltp_read_write | 6.32 | 15.27 | 2.4 |
oltp_update_index | 2.43 | 3.02 | 1.2 |
oltp_update_non_index | 2.48 | 2.97 | 1.2 |
oltp_write_only | 3.62 | 7.56 | 2.1 |
types_delete_insert | 5.09 | 6.43 | 1.3 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
dolt_cherry_pick
procedure to properly work with ignored tables.dolt reset
and dolt_reset()
to check their handling of ignored tables.dolt_checkout
dolt_checkout
that occurs in the narrow case where both the -b
and --track
flags are provided, in order to create a new branch that tracks an upstream branch with a different name.SessionStateAdapter::SetCWBHeadRef
SetCWBHeadRef
was a designed to fix an issue when evalutating call dolt_branch('-m', $ACTIVE_BRANCH, $NEW_BRANCH)
(which would cause a panic) by changing the active branch on the SQL session to match the new branch. However, this implementation has some problems.DoltSession
operations, which do use transactions.commitTransaction
before and after setting the new current working branch. This would allow SwitchActiveBranch
to see the newly created branch. However, this is not a correct use of manual transaction management and is not generally safe.SetCWBHeadRef
is not a good idea. It's been reverted, and the call to SetCWBHeadRef
within RenameBranch
has been removed.RenameBranch
itself. This also uses manual transaction management, but this is isolated to a single execution path. I welcome feedback on whether there's a better way to do this.alter_statement
column from dolt_schema_diff
results.dolt_schema_diff
output: https://github.com/dolthub/docs/pull/1575#discussion_r1247212714alter_statement
column, and requiring the user to get this information from dolt_patch
.dolt diff
is now doing this: we identify the changed tables using dolt_schema_diff
, then get the alter statements from dolt_patch
.to_*
/from_*
columns in cases when the table does not exist at the to
or from
revision.BEGIN/END
blocks to return the last SELECTed result set; this PR extends that logic to loop constructs as well.dolt_commit()
execute correctly in stored procedures.memo.Literal
has different type than lookupCREATE TABLE tab2(pk INTEGER PRIMARY KEY, col0 INTEGER, col1 FLOAT, col2 TEXT, col3 INTEGER, col4 FLOAT, col5 TEXT);
CREATE UNIQUE INDEX idx_tab2_0 ON tab2 (col1 DESC,col4 DESC);
CREATE INDEX idx_tab2_1 ON tab2 (col1,col0);
CREATE INDEX idx_tab2_2 ON tab2 (col4,col0);
CREATE INDEX idx_tab2_3 ON tab2 (col3 DESC);
INSERT INTO tab2 VALUES(0,344,171.98,'nwowg',833,149.54,'wjiif');
INSERT INTO tab2 VALUES(1,353,589.18,'femmh',44,621.85,'qedct');
SELECT pk FROM tab2 WHERE ((((((col0 IN (SELECT col3 FROM tab2 WHERE ((col1 = 672.71)) AND col4 IN (SELECT col1 FROM tab2 WHERE ((col4 > 169.88 OR col0 > 939 AND ((col3 > 578))))) AND col0 >= 377) AND col4 >= 817.87 AND (col4 > 597.59)) OR col4 >= 434.59 AND ((col4 < 158.43)))))) AND col0 < 303) OR ((col0 > 549)) AND (col4 BETWEEN 816.92 AND 983.96) OR (col3 BETWEEN 421 AND 96);
The PutField function expects the value to match the tuple descriptor exactly, and will panic if it does not.sql.Type
based off the val.Enc
TestSimpleQueries
, TestsJoinOps
, TestJoinPlanning
, TestColumnAliases
, TestDerivedTableOuterScopeVisibility
, TestAmbiguousColumnResolution
, TestReadOnlyVersionedQueries
with the new name resolution strategy.dolt_schema_diff
table functionRead 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.33 | 3.7 |
index_join_scan | 1.14 | 2.18 | 1.9 |
index_scan | 30.26 | 55.82 | 1.8 |
oltp_point_select | 0.15 | 0.46 | 3.1 |
oltp_read_only | 2.91 | 8.13 | 2.8 |
select_random_points | 0.3 | 0.77 | 2.6 |
select_random_ranges | 0.35 | 1.1 | 3.1 |
table_scan | 30.81 | 56.84 | 1.8 |
types_table_scan | 70.55 | 161.51 | 2.3 |
reads_mean_multiplier | 2.3 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.09 | 6.09 | 1.2 |
oltp_insert | 2.48 | 2.97 | 1.2 |
oltp_read_write | 6.55 | 15.55 | 2.4 |
oltp_update_index | 2.57 | 3.07 | 1.2 |
oltp_update_non_index | 2.71 | 3.02 | 1.1 |
oltp_write_only | 3.75 | 7.7 | 2.1 |
types_delete_insert | 5.18 | 6.67 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
commit
to print with printCommitInfo
. This prevents seg fault errors from using dolt log
as was previously done.dolt conflicts resolve
to use only SQLdolt conflicts resolve
to only use SQL.dolt conflicts cat
to SQLdolt conflicts cat
to use SQL.dolt conflicts cat
is migrated, dolt conflicts resolve
is not yet migrated.dolt reset
to use the appropriate sql engine to generate results.Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.66 | 1.4 |
groupby_scan | 12.3 | 16.71 | 1.4 |
index_join | 1.16 | 4.25 | 3.7 |
index_join_scan | 1.12 | 2.11 | 1.9 |
index_scan | 30.26 | 53.85 | 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.74 | 2.6 |
select_random_ranges | 0.35 | 1.06 | 3.0 |
table_scan | 30.81 | 55.82 | 1.8 |
types_table_scan | 69.29 | 155.8 | 2.2 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 4.91 | 5.88 | 1.2 |
oltp_insert | 2.39 | 2.86 | 1.2 |
oltp_read_write | 6.43 | 15.0 | 2.3 |
oltp_update_index | 2.76 | 2.97 | 1.1 |
oltp_update_non_index | 2.61 | 2.97 | 1.1 |
oltp_write_only | 3.49 | 7.43 | 2.1 |
types_delete_insert | 4.91 | 6.32 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
Invalid
) was being printed out due to a shadowed col
variable.dolt clone
to fail when running against a database which had been garbage collected. This change fixes the bug in the server. It also patches the client behavior so that it will tolerate responses from older versions of dolt.dolt status
output was missing some new lines
taylor@MacBook-Pro-3 test % dolt status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
(use "dolt push" to publish your local commits)Changes not staged for commit:
(use "dolt add <table>" to update what will be committed)
(use "dolt checkout <table>" to discard changes in working directory)
modified: table1
taylor@MacBook-Pro-3 test % dolt status
taylor@MacBook-Pro-3 test % dolt status
On branch main
Your branch is up to date with 'origin/main'.nothing to commit, working tree clean
dolt commit
dolt diff
and dolt show
to SQL implementationdolt diff
implementation to use only SQL.dolt_diff
and dolt_schema_diff
table functions, and making some of the common code generic, so we don't have to rely on DoltDb objects (which rely on dolt internals).dolt show
to SQL.dolt show
has the ability to log some of the storage internals in two cases:
--no-pretty
flag is specifieddolt show
is invoked against non-commit hashesSET
statements@@dolt_transaction_commit
SAVEPOINT
fails if database is not selected.database/branch
broken for write statementsmysql
system db isn't "use"able via sql-servercall dolt_checkout(<table>)
does not work for revision databasesRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.93 | 2.71 | 1.4 |
groupby_scan | 12.52 | 16.71 | 1.3 |
index_join | 1.18 | 4.33 | 3.7 |
index_join_scan | 1.12 | 2.07 | 1.8 |
index_scan | 30.81 | 54.83 | 1.8 |
oltp_point_select | 0.14 | 0.46 | 3.3 |
oltp_read_only | 2.81 | 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 | 55.82 | 1.8 |
types_table_scan | 69.29 | 161.51 | 2.3 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 4.82 | 6.09 | 1.3 |
oltp_insert | 2.52 | 2.91 | 1.2 |
oltp_read_write | 6.21 | 15.0 | 2.4 |
oltp_update_index | 2.48 | 2.97 | 1.2 |
oltp_update_non_index | 2.39 | 2.97 | 1.2 |
oltp_write_only | 3.49 | 7.43 | 2.1 |
types_delete_insert | 5.28 | 6.55 | 1.2 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
This release contains backwards incompatible changes:
sql
, add
, blame
, status
, commit
, branch
) have new behavior which may impact existing user workflows. Specifically, If the --user
flag is in use, there is a new --password
argument which will be required. If one is not presented, you will be prompted for a password, and this will hang waiting for input. Furthermore, previously these commands would allow users to specify incorrect credentials silently. If bad credentials are given now, the commands will fail appropriately. If you want to use a password in your automated jobs, but don't want to specify the password on the command line, you can set the DOLT_CLI_PASSWORD
environment variable.Per Dolt’s versioning policy, this is a minor version bump (major.minor.patch).
log
command for awhile yet.dolt_checkout()
doesn't work in stored procedures in some cases (namely when using unqualified table names).IntDiv.Type()
should always return either uint64
or int64
IntDiv.convertLeftRight()
used IntDiv.Type()
to determine the larger type between IntDiv.Left.Type()
and IntDiv.Right.Type()
to avoid precision loss when doing internal calculations. Now, that logic is moved from IntDiv.Type()
to IntDiv.convertLeftRight()
, and IntDiv.Type()
can only return uint64
or int64
.SchemaTarget
implementations weren't checking if the targetSchema
was resolved as part of the Resolved()
method. Added tests, audited the other implementations, and simplified the logic to use a new method on Schema
to check that column default expressions are resolved.dolt_commit()
will break some following statements in stored proceduresRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.66 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.16 | 4.41 | 3.8 |
index_join_scan | 1.12 | 2.11 | 1.9 |
index_scan | 30.81 | 54.83 | 1.8 |
oltp_point_select | 0.15 | 0.46 | 3.1 |
oltp_read_only | 2.86 | 7.98 | 2.8 |
select_random_points | 0.3 | 0.75 | 2.5 |
select_random_ranges | 0.35 | 1.06 | 3.0 |
table_scan | 30.81 | 54.83 | 1.8 |
types_table_scan | 70.55 | 155.8 | 2.2 |
reads_mean_multiplier | 2.3 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.18 | 5.88 | 1.1 |
oltp_insert | 2.57 | 2.91 | 1.1 |
oltp_read_write | 6.32 | 15.27 | 2.4 |
oltp_update_index | 2.48 | 3.07 | 1.2 |
oltp_update_non_index | 2.57 | 2.91 | 1.1 |
oltp_write_only | 3.55 | 7.43 | 2.1 |
types_delete_insert | 5.09 | 6.55 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 1.9 |
---|
Published by github-actions[bot] over 1 year ago
commit
to return an error when there is an error processing result rowsdolt_schema_diff
table functiondolt_schema_diff
will return the schema diffs between refs and optionally will filter those changes to a specific table.SchemaTarget
implementations weren't checking if the targetSchema
was resolved as part of the Resolved()
method. Added tests, audited the other implementations, and simplified the logic to use a new method on Schema
to check that column default expressions are resolved.information_schema.processlist
to correctly display status of processes and databases"Query"
, now we reference process.Command
CAST
and CONVERT
functionsFLOAT
and DOUBLE
types with the CAST
and CONVERT
functions. It also adds support for length (aka precision) and scale type constraints (e.g. CAST(1.2345 AS DECIMAL(3,2))
).DOUBLE
and FLOAT
with CAST
and CONVERT
: https://github.com/dolthub/vitess/pull/249information_schema.processlist
result is inconsistent with show processlist
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.33 | 3.7 |
index_join_scan | 1.14 | 2.14 | 1.9 |
index_scan | 30.26 | 55.82 | 1.8 |
oltp_point_select | 0.14 | 0.46 | 3.3 |
oltp_read_only | 2.86 | 8.13 | 2.8 |
select_random_points | 0.29 | 0.75 | 2.6 |
select_random_ranges | 0.35 | 1.08 | 3.1 |
table_scan | 30.81 | 55.82 | 1.8 |
types_table_scan | 70.55 | 158.63 | 2.2 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 4.49 | 5.67 | 1.3 |
oltp_insert | 2.18 | 2.76 | 1.3 |
oltp_read_write | 6.09 | 15.27 | 2.5 |
oltp_update_index | 2.26 | 2.91 | 1.3 |
oltp_update_non_index | 2.26 | 2.81 | 1.2 |
oltp_write_only | 3.25 | 7.43 | 2.3 |
types_delete_insert | 4.57 | 6.32 | 1.4 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
This release contains backwards-incompatible changes:
information_schema
tables now contain entries for revision-qualified database names (e.g. mydb/mybranch
) if any are active in the current session. There is always an entry for the base database name (mydb
) as well. This also applies to statements such as show databases
.In line with Dolt's version policy, this release is therefore a minor version increment (major.minor.patch)
dolt_schema_diff
table function"dolt_assume_cluster_role
, this stored procedure can only transition to role standby
, but takes a second integer parameter representing the number of replica servers in the cluster which must be made current in order for the transition to succeed.workingRoot
when getting declared FKs.dolt_schema_diff
table functiondolt_schema_diff
will return the schema diffs between refs and optionally will filter those changes to a specific table.dolt diff
.dolt commit
to use the appropriate sql engine to generate results.dolt branch
to new CLI framework.dolt branch
to invoke SQL commands instead of manipulating the database directly. This allows it to work even on remote connections.dolt branch --datasets
. It's not a documented flag. We're currently using it for an internal test and can migrate it if we can figure out a way to rewrite the test.information_schema.processlist
to correctly display status of processes and databases"Query"
, now we reference process.Command
sql.StringType
.UnaryExpressions
with GetFields
would incorrectly throw a functional dependency error with ONLY_FULL_GROUP_BY
enabled.version
and version_comment
values@@version
now returns 8.0.11
@@version_comment
now returns "Dolt"; in mysql, this appears to be dependent on OS / method of install
MySQL Community Server - GPL
Homebrew
AND
statements weren't covered.reorderProjection
also replaces subqueries with getfields in projections when they are used by subqueries, but it did not check for function expressions."x" could not be found
error.reorderProjection
that is supposed to find deferredColumns also look at the arguments of functions recursively (because we can nest functions).tmp> select 0 as foo, if((select foo), 123, 456);
+-----+----------------------------+
| foo | if((select foo), 123, 456) |
+-----+----------------------------+
| 0 | 127 |
+-----+----------------------------+
1 row in set (0.00 sec)
MySQL returns an Integer type for if statement, and if either argument is a String, it always returns a String.sum(literal)
sum(literal)
, we use the type of the literal. In this issue, the literal was 1
, so an INT8
, which caps out at 127
.sum()
is always supposed to return a float64, so I made a change to do that.--column-type-info
option, and it does appear that any columns coming from sum()
has a DECIMAL
type.CREATE TABLE
portion in their non-string form. This adds support for the string form.INVISIBLE
keyword. The implementation still ignores the INVISIBLE
keyword, but it will no longer cause a parser error.DOUBLE
and FLOAT
in the CAST
and CONVERT
functions.CALL
statement.ON DELETE
and ON UPDATE
yet. Example: ALTER TABLE t ADD COLUMN col2 int REFERENCES other_table(id);
event
to be used unquoted in ALTER TABLE
statements.GROUP BY
select count(1) from <table>
does not return 1select count(*) from <table>
confusingly slow for some usersRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.71 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.16 | 4.49 | 3.9 |
index_join_scan | 1.12 | 2.18 | 1.9 |
index_scan | 30.81 | 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.06 | 3.0 |
table_scan | 30.81 | 55.82 | 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.47 | 6.32 | 1.2 |
oltp_insert | 2.81 | 3.13 | 1.1 |
oltp_read_write | 6.67 | 15.55 | 2.3 |
oltp_update_index | 2.76 | 3.25 | 1.2 |
oltp_update_non_index | 2.86 | 3.19 | 1.1 |
oltp_write_only | 3.96 | 7.7 | 1.9 |
types_delete_insert | 5.99 | 7.04 | 1.2 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
This release contains backwards incompatible changes:
dolt_merge()
procedure now returns the commit hash of the merge as well as fast-forward and conflicts result flags that it returned before.databases
key is no longer accepted in config.yaml
files. Use the data_dir
key instead.Per Dolt’s versioning policy, this is a minor version bump (major.minor.patch) because consumers of the dolt_merge()
results will have to update to the new return values.
dolt_merge(..., '--no-ff')
[\u0001-\uFFFF]
.create table `ドルト` (i int primary key);
This works in MySQL without the backquotes, but that is a separate fix likely stemming from vitess.create table `branch/table` (i int primary key);
Fix for: https://github.com/dolthub/dolt/issues/6156databases
YAML config element.port already in use
, even though we've already confirmed that the port is not in use prior to running dolt sql-server
.generate/main.go
file.create spatial reference system ...
, which lets users add custom SRID to the information schema.DEFINITION
for an entry in this table, and the rules are unclear, so we are much more permissive for now.information_schema
, so some tests are modified.tmp2> explain select * from t alias where a = 1 and b = 1 and c = 1;
+-----------------------------------------------------------+
| plan |
+-----------------------------------------------------------+
| Filter |
| ├─ (((alias.a = 1) AND (alias.b = 1)) AND (alias.c = 1)) |
| └─ TableAlias(alias) |
| └─ IndexedTableAccess(t) |
| ├─ index: [t.a] |
| ├─ filters: [{[1, 1]}] |
| └─ columns: [a b c] |
+-----------------------------------------------------------+
After:
tmp2> explain select * from t alias where a = 1 and b = 1 and c = 1;
+-----------------------------------------------------------+
| plan |
+-----------------------------------------------------------+
| Filter |
| ├─ (((alias.a = 1) AND (alias.b = 1)) AND (alias.c = 1)) |
| └─ TableAlias(alias) |
| └─ IndexedTableAccess(t) |
| ├─ index: [t.a,t.b,t.c] |
| ├─ filters: [{[1, 1], [1, 1], [1, 1]}] |
| └─ columns: [a b c] |
+-----------------------------------------------------------+
This has silently been impacting join performance in particular, where table aliases are more common. This is a small change but I'd expect this to have a broad positive impact for customers.select * from xy join uv on x = u join ab on u = a
has two initial join edges, x = u
and u = a
. Those edges create expression groupings xy x uv
, uv x ab
, xy x uv x ab
. There misses a transitive edge, x = a
, with a corresponding join group xy x ab
. We should generate plans for most transitive edges now (transitive edges in apply joins are harder).ON DELETE
and ON UPDATE
yet. Example: ALTER TABLE t ADD COLUMN col2 int REFERENCES other_table(id);
event
to be used unquoted in ALTER TABLE
statements.CREATE SPATIAL REFERENCE SYSTEM ...
syntaxJSON_TABLE
functionalityJSON_TABLE(
expr,
path COLUMNS (column_list)
) [AS] alias
column_list:
column[, column][, ...]
column:
name FOR ORDINALITY
| name type PATH string path [on_empty] [on_error]
| name type EXISTS PATH string path
| NESTED [PATH] path COLUMNS (column_list)
on_empty:
{NULL | DEFAULT json_string | ERROR} ON EMPTY
on_error:
{NULL | DEFAULT json_string | ERROR} ON ERROR
Note: the MySQL docs indicate that PATH
is optional in the NESTED
case, but it doesn't seem that way.event
reserved keyword quoting differences with MySQLcall dolt_merge(..., '--no-ff')
should return the commit hashRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.93 | 2.71 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.16 | 4.41 | 3.8 |
index_join_scan | 1.12 | 2.14 | 1.9 |
index_scan | 30.81 | 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.3 | 0.75 | 2.5 |
select_random_ranges | 0.35 | 1.06 | 3.0 |
table_scan | 30.81 | 55.82 | 1.8 |
types_table_scan | 70.55 | 158.63 | 2.2 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.88 | 6.21 | 1.1 |
oltp_insert | 2.81 | 3.13 | 1.1 |
oltp_read_write | 6.79 | 15.27 | 2.2 |
oltp_update_index | 3.07 | 3.19 | 1.0 |
oltp_update_non_index | 2.97 | 3.13 | 1.1 |
oltp_write_only | 4.03 | 7.56 | 1.9 |
types_delete_insert | 5.57 | 6.79 | 1.2 |
writes_mean_multiplier | 1.3 |
Overall Mean Multiple | 1.9 |
---|
Published by github-actions[bot] over 1 year ago
dolt_cherry_pick
stored procedure to work with @@autocommit
dolt_cherry_pick
encountered a data or schema conflict, or a constraint violation, it would return an error with a message about the problem and how to resolve. This works well when @@autocommit=0
, but when @@autocommit=1
the error causes the automatic transaction management to automatically rollback the changes, which prevents users from being able to examine and fix the conflicts.dolt_cherry_pick
to be more similar to how dolt_merge
reports conflicts – instead of returning an error message, dolt_cherry_pick
now returns additional fields that show the number of tables with data conflicts, number of tables with schema conflicts, and number of tables with constraint violations.JSON_TABLE()
functionalityFOR ORDINALITY
columns, which is just an auto incrementDEFAULT <value> ON ERROR/EMPTY
, which fills in values when encountering either an error or a missing valueNULL
is usedERROR <value> on ERROR/EMPTY
, which throws an error when encountering either an error or a missing valueNULL
NESTED
columns, which is a way to extract data from objects within objects and so onNESTED
columns, they are "sibling" nested, they take turns being NULL
event
as table and column nameEVENT
non-reserved keyword to be used as table and column name without quoting.EVENT
for user name or host name.JSON_TABLE
functionalityJSON_TABLE(
expr,
path COLUMNS (column_list)
) [AS] alias
column_list:
column[, column][, ...]
column:
name FOR ORDINALITY
| name type PATH string path [on_empty] [on_error]
| name type EXISTS PATH string path
| NESTED [PATH] path COLUMNS (column_list)
on_empty:
{NULL | DEFAULT json_string | ERROR} ON EMPTY
on_error:
{NULL | DEFAULT json_string | ERROR} ON ERROR
Note: the MySQL docs indicate that PATH
is optional in the NESTED
case, but it doesn't seem that way.Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.93 | 2.61 | 1.4 |
groupby_scan | 12.3 | 16.71 | 1.4 |
index_join | 1.18 | 4.33 | 3.7 |
index_join_scan | 1.14 | 2.11 | 1.9 |
index_scan | 30.81 | 53.85 | 1.7 |
oltp_point_select | 0.14 | 0.46 | 3.3 |
oltp_read_only | 2.86 | 7.98 | 2.8 |
select_random_points | 0.3 | 0.75 | 2.5 |
select_random_ranges | 0.35 | 1.06 | 3.0 |
table_scan | 30.81 | 54.83 | 1.8 |
types_table_scan | 69.29 | 155.8 | 2.2 |
reads_mean_multiplier | 2.3 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.57 | 6.21 | 1.1 |
oltp_insert | 2.76 | 2.91 | 1.1 |
oltp_read_write | 6.43 | 15.27 | 2.4 |
oltp_update_index | 2.61 | 3.25 | 1.2 |
oltp_update_non_index | 2.76 | 3.13 | 1.1 |
oltp_write_only | 3.68 | 7.56 | 2.1 |
types_delete_insert | 5.18 | 7.04 | 1.4 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
dolt cherry-pick
and call dolt_cherry_pick(...)
to cherry-pick commits that cause conflicts or constraint violations and to cherry-pick commits that contain schema changes.WHERE
clause with LIKE
expression over JSON
column results in nil panicRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.97 | 1.5 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.16 | 4.41 | 3.8 |
index_join_scan | 1.12 | 2.14 | 1.9 |
index_scan | 30.81 | 54.83 | 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.06 | 3.0 |
table_scan | 31.37 | 55.82 | 1.8 |
types_table_scan | 70.55 | 158.63 | 2.2 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 4.82 | 5.99 | 1.2 |
oltp_insert | 2.61 | 2.91 | 1.1 |
oltp_read_write | 6.43 | 15.27 | 2.4 |
oltp_update_index | 2.57 | 3.02 | 1.2 |
oltp_update_non_index | 2.61 | 3.02 | 1.2 |
oltp_write_only | 3.75 | 7.56 | 2.0 |
types_delete_insert | 4.82 | 6.55 | 1.4 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
This release contains potentially breaking behavior changes having to do with transaction behavior and database naming.
CALL dolt_checkout('mybranch')
is no longer an error if the currently checked out branch has uncommitted changes.use mydb/mybranch; select * from information_schema.columns
and similar queries used to return table_schema
with the branch-qualified database name. information_schema
tables, show databases
, etc. now always contain only base, unqualified database names. The database()
function still returns the name of the database in the connection string or in use
statements.Per Dolt's versioning policy, this may require users to update code that expects call dolt_checkout()
to fail on a dirty working set. Thus, the minor (major.minor.patch) version bump.
remotes-sql-server.bats
and sql-server.bats
when running BATS in remote-engine configuration.dolt status
subcommand to use SQL queries to generate results.dolt status
subcommand to use SQL queries to generate results.remote
column to the dolt_branches
table. This column identifies the remote for the branch.dolt_count_commits
function, which returns the number of commits between two commits.dolt status
.dolt_checkout()
. E.g., this session updates the branch b1
:use mydb;
insert into `mydb/b1`.t1 values (1);
commit;
These database-qualified INSERT
/ UPDATE
etc. statements used to silently drop data if the database named wasn't the current database, in some cases. They now work correctly in all cases. We still fail transactions that attempt to make changes to more than one working set for now, but this restriction will be removed in a future revision.dolt_checkout()
has changed. It is no longer an error to call dolt_checkout()
with a dirty working set. USE mydb/branch
is now almost exactly equivalent to dolt_checkout('branch')
. dolt_checkout()
now has the side-effect of setting the session's current DB name to the base name of the database. E.g. after use mydb/branch
, select database(), active_branch()
returns mydb/branch, branch
. If you then call dolt_checkout('branch2')
, then the same query returns mydb, branch2
. dolt_checkout
is different from USE
statements in that it changes which branch the unqualified database name (mydb
) resolves to for this session.SELECT INTO
should always be an empty schemaSELECT INTO
currently returns it's child node's schema as its result schema, but it doesn't actually return row data in that schema. This causes a problem over a SQL connection when clients see a result schema and then see row data that doesn't match that schema. This causes clients to freak out and close the connection from their side. Since SELECT INTO
always sends its results to a file or SQL vars (and NOT over the SQL connection), its result schema should always be the empty schema.CREATE TABLE
. This should unblock customers who just need their statements to parse, but don't actually need the functionality of FULLTEXT. We still error when trying to manually add a FULLTEXT index using ALTER
or CREATE INDEX
. Since this isn't really "correct" behavior, I did not add any tests.TableFunction
aliasingexpression.UnresolvedTableFunction
to so an alias can be specified.disambiguate_table_functions
, TableFunctions will default to using function name as table name when alias isn't provided.event
as table and column nameEVENT
non-reserved keyword to be used as table and column name without quoting.EVENT
for user name or host name.table_functions
with aliasesEVENTS
to be parsed as non-reserved keywordEVENTS
keywords into non_reserved_keyword
list, allowing statements using information_schema.events
table to parse.EVENT
cannot be transferred into non_reserved_keyword
, causing shift/reduce and reduce/reduce conflicts.event
reserved keyword quoting differences with MySQLdolt sql-client
does not pick databasestart_sql_server
Read Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 2.0 | 2.66 | 1.3 |
groupby_scan | 12.52 | 16.71 | 1.3 |
index_join | 1.21 | 4.33 | 3.6 |
index_join_scan | 1.14 | 2.11 | 1.9 |
index_scan | 30.81 | 54.83 | 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.06 | 3.0 |
table_scan | 30.81 | 54.83 | 1.8 |
types_table_scan | 71.83 | 155.8 | 2.2 |
reads_mean_multiplier | 2.3 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.99 | 6.32 | 1.1 |
oltp_insert | 2.86 | 3.13 | 1.1 |
oltp_read_write | 6.79 | 15.55 | 2.3 |
oltp_update_index | 2.97 | 3.13 | 1.1 |
oltp_update_non_index | 2.91 | 3.13 | 1.1 |
oltp_write_only | 4.1 | 7.7 | 1.9 |
types_delete_insert | 5.88 | 6.91 | 1.2 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 1.9 |
---|
Published by github-actions[bot] over 1 year ago
This release contains a behavior change to LOAD DATA LOCAL
, which now defaults to have the same effect as IGNORE
in order to match MySQL.
Per Dolt's versioning policy, this may require users to update code that uses LOAD DATA LOCAL
. Thus, the minor (major.minor.patch) version bump.
--skip-empty
to dolt commit
and dolt_commit()
--skip-empty
flag can be passed to dolt commit ...
or call dolt_commit(...)
and have the commit operation be a no-op, instead of an error, if there are no changes staged to commit. It is an error to use --skip-empty
together with --allow-empty
.LOCAL
to have the same effect as IGNORE
to match mysql(determinant) -> (dependent)
relationships on columns to track these properties. They color edges and nodes to differentiate constant, nullability, equivalence attributes. Any set of of columns uniquely determines the value of constants, so they have empty determinants: () -> (colSet)
. We differentiate strict keys (set of columns unique and non-nullable index) from lax keys (index that maybe be non-unique or nullable).SHOW TABLE
statementsSHOW TABLES
statement with a bound variable in the filter clause (e.g. SHOW TABLES FROM mydb WHERE Tables_in_mydb = ?;
) GMS and Vitess were identifying the bound variable parameters differently and causing the SQL client on the other end to panic. Vitess code in conn.go
walks the parsed tree and looks for SQLVal
instances to identify the parameters and then returns that metadata over the SQL connection. The SHOW TABLES
statement above fails because the sqlparser
AST wasn't including all the members of SHOW TABLES
node in the walk. This case is a little tricky to test directly in go-mysql-server, because it only repros in a running sql-server when running over a Vitess conn
.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.18 | 3.5 |
index_join_scan | 1.14 | 2.11 | 1.9 |
index_scan | 30.26 | 54.83 | 1.8 |
oltp_point_select | 0.14 | 0.47 | 3.4 |
oltp_read_only | 2.86 | 8.13 | 2.8 |
select_random_points | 0.3 | 0.77 | 2.6 |
select_random_ranges | 0.35 | 1.1 | 3.1 |
table_scan | 30.26 | 55.82 | 1.8 |
types_table_scan | 70.55 | 158.63 | 2.2 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.0 | 6.32 | 1.3 |
oltp_insert | 2.52 | 3.02 | 1.2 |
oltp_read_write | 6.43 | 15.55 | 2.4 |
oltp_update_index | 2.57 | 3.13 | 1.2 |
oltp_update_non_index | 2.66 | 3.07 | 1.2 |
oltp_write_only | 3.62 | 7.84 | 2.2 |
types_delete_insert | 5.0 | 6.91 | 1.4 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
$SQL_ENGINE
environment variable set, which meant that we weren't actually testing the ability for commands to seamlessly connect to running server processes. This PR fixes this.dolt blame
to use the appropriate sql engine to generate results. This change also allows users to specify a specific revision to annotate from.dolt add
to use Sql backend.dolt add
to invoke SQL commands instead of manipulating the database directly. This allows it to work even on remote connections.charactersets.go
and collations.go
, so it's possible I made a mistake. I double checked them all, but I still might have overlooked one.->
and ->>
operatorscolumn->path
Documentationcolumn->>path
DocumentationRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.76 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.16 | 4.25 | 3.7 |
index_join_scan | 1.12 | 2.14 | 1.9 |
index_scan | 30.81 | 55.82 | 1.8 |
oltp_point_select | 0.15 | 0.47 | 3.1 |
oltp_read_only | 2.86 | 8.13 | 2.8 |
select_random_points | 0.29 | 0.77 | 2.7 |
select_random_ranges | 0.35 | 1.08 | 3.1 |
table_scan | 30.81 | 55.82 | 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.57 | 6.55 | 1.2 |
oltp_insert | 2.66 | 3.13 | 1.2 |
oltp_read_write | 6.79 | 15.83 | 2.3 |
oltp_update_index | 2.81 | 3.19 | 1.1 |
oltp_update_non_index | 2.81 | 3.25 | 1.2 |
oltp_write_only | 4.03 | 7.84 | 1.9 |
types_delete_insert | 5.47 | 7.04 | 1.3 |
writes_mean_multiplier | 1.4 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
->
and ->>
operatorscolumn->path
Documentationcolumn->>path
Documentationroot
, prevents access to other databases.dolt table import --append
->>
not supportedRead Tests | MySQL | Dolt | Multiple |
---|---|---|---|
covering_index_scan | 1.96 | 2.71 | 1.4 |
groupby_scan | 12.3 | 17.01 | 1.4 |
index_join | 1.18 | 4.1 | 3.5 |
index_join_scan | 1.12 | 2.07 | 1.8 |
index_scan | 30.26 | 55.82 | 1.8 |
oltp_point_select | 0.14 | 0.48 | 3.4 |
oltp_read_only | 2.86 | 8.13 | 2.8 |
select_random_points | 0.29 | 0.77 | 2.7 |
select_random_ranges | 0.35 | 1.08 | 3.1 |
table_scan | 30.81 | 56.84 | 1.8 |
types_table_scan | 69.29 | 161.51 | 2.3 |
reads_mean_multiplier | 2.4 |
Write Tests | MySQL | Dolt | Multiple |
---|---|---|---|
bulk_insert | 0.001 | 0.001 | 1.0 |
oltp_delete_insert | 5.09 | 6.32 | 1.2 |
oltp_insert | 2.48 | 3.13 | 1.3 |
oltp_read_write | 6.32 | 15.55 | 2.5 |
oltp_update_index | 2.43 | 3.13 | 1.3 |
oltp_update_non_index | 2.61 | 3.02 | 1.2 |
oltp_write_only | 3.55 | 7.84 | 2.2 |
types_delete_insert | 5.0 | 6.91 | 1.4 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|
Published by github-actions[bot] over 1 year ago
local-remote.bats
contains a list of bats files that are not yet confirmed to work against a remote server because they contain dolt commands that haven't been migrated yet. This is a burndown list that will shrink as we migrate more commands.enum
and set
use the collation during type creation, which occurs before we've verified the collation's implementation. The other string types do not use the collation during type creation, so we return the appropriate error as a result.root
, prevents access to other databases.dolt table import --append
->>
not supportedRead 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.25 | 3.7 |
index_join_scan | 1.1 | 2.11 | 1.9 |
index_scan | 30.26 | 54.83 | 1.8 |
oltp_point_select | 0.14 | 0.47 | 3.4 |
oltp_read_only | 2.71 | 7.98 | 2.9 |
select_random_points | 0.29 | 0.77 | 2.7 |
select_random_ranges | 0.34 | 1.08 | 3.2 |
table_scan | 30.26 | 54.83 | 1.8 |
types_table_scan | 68.05 | 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 | 6.09 | 1.2 |
oltp_insert | 2.43 | 2.97 | 1.2 |
oltp_read_write | 6.32 | 15.55 | 2.5 |
oltp_update_index | 2.52 | 3.07 | 1.2 |
oltp_update_non_index | 2.57 | 3.02 | 1.2 |
oltp_write_only | 3.55 | 7.7 | 2.2 |
types_delete_insert | 4.82 | 6.79 | 1.4 |
writes_mean_multiplier | 1.5 |
Overall Mean Multiple | 2.0 |
---|