github dolthub/dolt v1.35.4
1.35.4

latest releases: v1.35.11, v1.35.10, binlog-alpha-1...
one month ago

Merged PRs

dolt

  • 7617: go/libraries/doltcore/merge: fulltext_rebuild.go: Add some comments, refactor some things into functions, even if they are still too big.
  • 7616: [sqle] don't panic reading history table
    Found an issue with the history table while testing GORM. It's specific to the ComPrepare interface, this doesn't trigger with a simple PREPARE query.
    DEBU[0197] preparing query                               paramsCount=2 query="SELECT column_name, column_default, is_nullable = 'YES', data_type, character_maximum_length, column_type, column_key, extra, column_comment, numeric_precision, numeric_scale , datetime_precision FROM information_schema.columns WHERE table_schema = ? AND table_name = ? ORDER BY ORDINAL_POSITION" statementId=2
    ERRO[0197] mysql_server caught panic:
    interface conversion: sql.Table is *sqle.WritableDoltTable, not *sqle.AlterableDoltTable
    /Users/maxhoffman/go/pkg/mod/github.com/dolthub/go-mysql-server@v0.18.1-0.20240313225114-4a2f2300d770/sql/planbuilder/parse.go:169 (0x101612ae7)
    com/dolthub/go-mysql-server/sql/planbuilder.(*Builder).BindOnly.func1: panic(r)
    /usr/local/go/src/runtime/panic.go:914 (0x1000d2187)
    gopanic: done = runOpenDeferFrame(d)
    /usr/local/go/src/runtime/iface.go:263 (0x1000a516f)
    panicdottypeE: panic(&TypeAssertionError{iface, have, want, ""})
    /usr/local/go/src/runtime/iface.go:273 (0x1000a5128)
    panicdottypeI: panicdottypeE(t, want, iface)
    /Users/maxhoffman/go/github.com/dolthub/dolt/go/libraries/doltcore/sqle/database.go:357 (0x101a1f1a7)
    com/dolthub/dolt/go/libraries/doltcore/sqle.Database.getTableInsensitive: return NewHistoryTable(baseTable.(*AlterableDoltTable).DoltTable, db.ddb, head), true, nil
    
  • 7615: [sqle] Allow bindvars in most function constructors
    This fixes all but the diff_table() function I think. That requires heavier refactoring to support prepared statements.
  • 7610: Optimize full-text to selectively rebuild
    This changes the Full-Text rebuild process to only trigger on tables that were changed in both roots (ours and theirs), rather than rebuilding every time a merge is performed regardless of what was actually changed. The rules here are fairly permissive, in that if a parent table or any of the indexed child tables are changed in both, then we rebuild all Full-Text indexes for that table. I chose this behavior out of caution, as dual changes in a single child table is probably due to some kind of renaming, so it's safer to rebuild everything for that table.
  • 7609: Drop the nbs.addr type in favor of hash.Hash type
    These two types were essentially the same, with the addition of the Prefix and Suffix methods to hash.Hash they are
    the same.
  • 7592: go/store/datas/pull: Restore puller optimization for parallel HasMany calls. Fix crash in pull_chunk_tracker.

go-mysql-server

  • 2393: Restored and refactored missing functionality required by Dolt
  • 2392: implement sql_mode = 'NO_AUTO_VALUE_ON_ZERO'
    This PR implements the sql_mode NO_AUTO_VALUE_ON_ZERO.
    This makes it so that 0 values (not NULL) do not increment the auto_increment counter.
    MySQL Docs: https://dev.mysql.com/doc/refman/8.3/en/example-auto-increment.html
    fixes #7600
  • 2390: Remove the NewDefaultServer, which doesn't work for any included session implementation
    Fixes dolthub/go-mysql-server#2364
    Added a memory.NewSessionBuilder method, now used in the example code.
  • 2380: Stubbing out support for COM_BINLOG_DUMP_GTID command
    Stubbing out support for two new mysql.Handler methods to support streaming binlog events from a server to a client.
    Depends on Vitess PR: dolthub/vitess#317
    Related to #7512

vitess

  • 319: make constraint name optional for primary key
    fixes #7601
  • 317: Port: Support for Vitess server to send binlog events
    Porting over support from the main Vitess repo for a server to send back binlog events over a connection. Also includes support for handling the COM_BINLOG_DUMP_GTID command.
    Related to #7512

Closed Issues

  • 7604: wikipedia import into mediawiki can consistently produce a Dolt deadlock
  • 7600: Specifying an AUTO_INCREMENT primary key results in spurious duplicate primary key given error
  • 7602: Conditionally creating a table in a script produces index already exists error

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 2.07 2.97 1.4
groupby_scan 12.98 17.32 1.3
index_join 1.32 5.09 3.9
index_join_scan 1.25 2.18 1.7
index_scan 33.72 63.32 1.9
oltp_point_select 0.17 0.48 2.8
oltp_read_only 3.36 7.98 2.4
select_random_points 0.32 0.77 2.4
select_random_ranges 0.38 0.94 2.5
table_scan 34.33 63.32 1.8
types_table_scan 74.46 176.73 2.4
reads_mean_multiplier 2.2
Write Tests MySQL Dolt Multiple
oltp_delete_insert 7.98 6.91 0.9
oltp_insert 3.75 3.43 0.9
oltp_read_write 8.28 15.83 1.9
oltp_update_index 3.82 3.55 0.9
oltp_update_non_index 3.82 3.49 0.9
oltp_write_only 5.37 7.98 1.5
types_delete_insert 7.7 7.7 1.0
writes_mean_multiplier 1.1
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 101.1 22.45 4.6
tpcc_tps_multiplier 4.6
Overall Mean Multiple 2.63

Don't miss a new dolt release

NewReleases is sending notifications on new releases.