github dolthub/dolt v1.35.7
1.35.7

latest releases: v1.35.11, v1.35.10, binlog-alpha-1...
27 days ago

Merged PRs

dolt

  • 7673: CLI Docs: Adding docs for system_variables field in config.yaml for sql-server command
    The CLI docs for sql-server doesn't include the system_variables field available in config.yaml.
  • 7672: [store] use hasCache to minimize pendingRef pool
    Expand the ChunkStore interface to let the nodeStore access recently accessed chunks. Avoid adding a child ref to the pendingRef list when already present in nbs.hasCache. For TPC-C this appears to reduce the pending ref count by another ~80%.
  • 7666: [statspro] Avoid copying histograms, perf improvement
    companion: dolthub/go-mysql-server#2421
  • 7654: [store] one hashset for child ref checks
    When writes add chunks at execution time, we currently add their direct child references to the memory table's pending ref queue to check for GC'd refs. We do this by constructing a hash map to pass every chunk's child refs to the memtable's pending queue. This PR avoids creating a new hashset per chunk by using a callback to delay reading out the refs. We make one child ref set per memtable, which has the added benefit of deduplicating child refs between chunks.

go-mysql-server

  • 2427: support Com_delete, Com_insert, Com_update status variables
    related: #7646
  • 2426: use @@session.collation_server during create database ...
    This PR makes it so create database ... actually reads the @@session.collation_server variable.
    Additionally, this ensures that settings @@character_set_server sets @@collation_server and vice versa.
    Interestingly, it seems like MySQL actually ignores the global scope of these system variables, and reads the session scope instead.
    fixes #7651
  • 2423: Adding test for preparing time.Time types
    This PR adds tests for using time.Time, some tests have to be skipped because we don't support Timespan correctly.
    companion pr: dolthub/vitess#327 dolthub/vitess#328
    test for #7665
  • 2422: Support Questions status variable
    This PR adds logic to update status variable Questions.
    This only works in the server context, probably doesn't through dolt sql cli.
    #7646
  • 2421: [stats] costed index scan perf
    Histogram copying is expensive. Instead pass and mutate references. We have to use a different struct type to load stats from JSON in order to support histogram interface generalization.
    related Dolt-side: #7666
  • 2420: support case-insensitive LIKE for show status/variables
    MySQL stores session and global variables in a performance_schema database, and these tables have a case-insensitive collation on the variable names.
    This PR emulates that behavior by hard coding the collation the schemas for ShowStatus and ShowVariables nodes.
  • 2419: Bug fix: Allow JSON scalar comparison between int64 and float64
    When comparing JSON values, numbers may be represented internally as an int64 or float64, but our comparison code wasn't casting an int64 to a float64 in order to compare it with a float64 value.
    Fixes #7656
  • 2418: fix show create database to actually show charset/collation
    This PR fixes the SHOW CREATE DATABASE ... statement to actually show the charset/collation that the db is under instead of always default.
    Additionally, this PR parses the charset database option, instead of ignoring it like before.
    partially fixes: #7651
  • 2416: /{.github,go.mod,go.sum}: bump go version
  • 2414: stubbing out status variables
    This PR adds the initial implementation of Status Variables.
    There are 682 status variables, and are very similar to System Variables.
    Every variable is read-only (and can only be updated by the server itself), and there are session-specific variables.
    MySQL Docs: https://dev.mysql.com/doc/refman/8.0/en/server-status-variable-reference.html
    Related: #7646

vitess

  • 328: revert decimals
    issue: dolthub/vitess#328
  • 327: add case for time.Time and decimal in bindvars
    We were unable to use time.Time and decimal type variables bind vars, so they couldn't be used as arguments to prepare statements.
    This PR addresses that issue.
    fixes: #7665
  • 325: /{.github,go.mod,go.sum}: bump go version
  • 320: Updates for binlog primary protocol
    • Porting over more code from vitess.io/vitess – support for the COM_REGISTER_REPLICA command.
    • Fixing a bug in Vitess' deserialization of the COM_BINLOG_DUMP_GTID command.
    • Adding some String functions to help with debugging.
    • Exposing the ability to flush a connection's buffer, as a short-term workaround for needing to flush the buffer more frequently than at the end of the connection in order to support `COM_BINLOG_DUMP_GTID'.

Closed Issues

  • 7651: set global character_set_server not working the same way in MySQL, may lead inconsistency
  • 7601: One more issue related to the Adobe Commerce ( Magento ) installation.
  • 7665: Error 1105: type time.Time not supported as bind var
  • 7656: JSON_CONTAINS regression
  • 7653: Panic in calculateMergeConflicts during dolt pull if sql-server is running

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 2.07 3.07 1.5
groupby_scan 13.46 17.63 1.3
index_join 1.34 5.18 3.9
index_join_scan 1.27 2.26 1.8
index_scan 34.33 54.83 1.6
oltp_point_select 0.17 0.49 2.9
oltp_read_only 3.36 8.13 2.4
select_random_points 0.33 0.78 2.4
select_random_ranges 0.39 0.94 2.4
table_scan 34.95 54.83 1.6
types_table_scan 74.46 158.63 2.1
reads_mean_multiplier 2.2
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.13 6.79 0.8
oltp_insert 3.75 3.36 0.9
oltp_read_write 8.43 15.55 1.8
oltp_update_index 3.82 3.49 0.9
oltp_update_non_index 3.82 3.36 0.9
oltp_write_only 5.37 7.7 1.4
types_delete_insert 7.7 7.43 1.0
writes_mean_multiplier 1.1
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 102.03 18.72 6.5
tpcc_tps_multiplier 6.5
Overall Mean Multiple 3.27

Don't miss a new dolt release

NewReleases is sending notifications on new releases.