github dolthub/dolt v0.75.12
0.75.12

latest releases: v1.43.13, v1.43.12, v1.43.11...
19 months ago

Merged PRs

dolt

  • 5750: Higher Res image for video in README
  • 5745: Add explainer video to README
  • 5742: Update uses of go-mysql-server error objects to point to new package.
    The dolt side of #5656.
    This is needed for dolt to build against go-mysql-server at HEAD.
  • 5717: support EVENT storage handling
    Depends on GMS PR: dolthub/go-mysql-server#1701
    The description of the GMS PR applies here as well that this PR implements events storage only (non-versioned metadata such as last_executed is not implemented yet). The event execution is not implemented yet.
    The events are versioned and are stored on all branches. This means that checking out a new branch will have the copy of existing events of the starting point branch. The events versioned metadata is stored in dolt_events system table.

go-mysql-server

  • 1716: Revert "allow renaming views with RENAME TABLE statement (#1712)"
    This reverts commit dac7262c9b7904b931f9792ac8ce3eb52f6f9ccf from PR dolthub/go-mysql-server#1712
    The PR above added a ViewDatabase implementation for PrivilegedDatabase, which is causing some Dolt cluster integration tests to fail. Temporarily pulling this commit out so we can get other GMS changes through and can debug the Dolt test failures separately.
  • 1713: Changing MaxTextResponseByteLength() to respect character_set_results
    The Type.MaxTextResponseByteLength() function was not honoring the character_set_results system variable, which resulted in Dolt sending different response length metadata from MySQL when the value of character_set_results is not the same as the type's charset.
    This change adds a *sql.Context parameter to the MaxTextResponseByteLength(ctx) function, so that the correct value can be pulled out of the session when the response metadata is sent through the handler.
    Fixes: #5735
    Related Dolt change: #5752
  • 1712: allow renaming views with RENAME TABLE statement
    • Added renaming of views with RENAME TABLE ... TO ... statement
    • Added ViewDatabase implementation for PrivilegedDatabase
      TODO: ALTER TABLE ... RENAME ... should fail for renaming of views. Currently, vitess parses both the statements into the same node, which makes GMS parser not be able to detect the difference.
      Should return error: ERROR 1347 (HY000): 'mydb.myview' is not BASE TABLE
  • 1711: update stored procedure timestamps to be accurate
    Currently when we load non-built-in stored procedures, we re-analyze the sql string which also re-creates all the metadata. This means that the Created At and Modified At fields can re-set every time the procedure is loaded in, instead of showing the correct timestamp. This change updates the loaded in procedure with the correct timestamps.
    fixes: #3081
  • 1710: Detect invalid uses of * and window functions in queries.
    This PR is the GMS side of the fix for #5656.
    Preventing panics from invalid window functions is easy: replace the panic with returning a new kind of error.
    The invalid *s were trickier. I added an additional analysis rule that runs immediately after resolving function names. It checks for any uses of "*" in a subexpression (so, not just "SELECT *") that aren't used inside a COUNT, COUNTDISTINCT, or JSONARRAY function.
    It's possible that there's other places where *s are allowed that we need to account for. It's also possible that there may be some other disallowed uses of * that will pass this and still cause a panic.
  • 1708: Allow uppercase collations
    Fixes #5699
    We were comparing the raw strings, which failed when they were anything but lowercase. Now we just force all strings to lowercase.
  • 1701: support EVENT storage handling
    This PR implements:
    • CREATE EVENT statement
    • DROP EVENT statement
    • SHOW EVENTS statement
    • SHOW CREATE EVENT statement.
      This PR handles events storage only. The event execution logic is not implemented yet. No events will be run and/or dropped if the execution time is passed or dropped if 'ends' time is passed and 'not preserve' is defined. Created events will be only stored in the database and can be queried to see details using SHOW statements.
  • 1663: Return column size in datetime type
    During testing go-mysql-server with Trino and I have noticed that it does work when I have either timestamp or datetime. I have asked them trinodb/trino#16575 whether it's ok for them to implement default column size like they did for Phoenix connector, but they did not want to add it. I still think it should be fine without column size, since most of the clients (except the ones which are written in java) accept date time without column size.
    In order to be fully compatible about it for now I have added 0 as column size for timestamp and datetime

Closed Issues

  • 5592: binlog replication doesn't use correct user
  • 5711: dolt JSON has different ordering vs MySQL JSON
  • 5656: Panics while executing queries
  • 5510: dolt command --help should use a pager
  • 5338: dolt status reports deleting and creating table when run against active server
  • 5260: Lots of dangling connections can potentially hang dolt sql-server
  • 4978: Error starting sql-server: invalid ref format: refs/heads/ when encountering a database with no main branch.
  • 4291: dolt sql interactive shell can't see changes created in another shell if it is running
  • 5743: Feature: auto-create branches on connect
  • 5425: Add support for dolt show
  • 5719: dolt dolt_constraint_violations doesn't show all violations on merge for composite unique keys
  • 5699: Collation description in CREATE TABLE context fails when uppercased
  • 3834: Show Variables Where Is An Unsupported Feature
  • 1657: panic if project imports vitess.io/vitess@v0.9.0

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.16 4.1 3.5
index_join_scan 1.12 2.07 1.8
index_scan 31.37 54.83 1.7
oltp_point_select 0.15 0.49 3.3
oltp_read_only 2.86 8.58 3.0
select_random_points 0.3 0.75 2.5
select_random_ranges 0.35 1.12 3.2
table_scan 31.37 56.84 1.8
types_table_scan 75.82 176.73 2.3
reads_mean_multiplier 2.3
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 6.09 6.43 1.1
oltp_insert 3.07 3.19 1.0
oltp_read_write 7.04 16.12 2.3
oltp_update_index 3.02 3.3 1.1
oltp_update_non_index 3.13 3.25 1.0
oltp_write_only 4.49 7.7 1.7
types_delete_insert 5.99 7.04 1.2
writes_mean_multiplier 1.3
Overall Mean Multiple 1.9

Don't miss a new dolt release

NewReleases is sending notifications on new releases.