Skip to content

1.42.9

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Aug 01:13

Merged PRs

dolt

  • 8219: Bug fix: events should remain enabled after sql-server restarts
    Fixing an event scheduler bug that caused events to be disabled and not run when the sql-server is restarted.
    Fixes #8167
  • 8209: add constraint violations to dolt status
    fixes: #8114

go-mysql-server

  • 2623: Fix anti-join correctess bug
    We had some strange logic for accepting a join anti-match, ripped it out and everything seems to be working correctly now.
  • 2620: implement name_const function
    MySQL docs: https://dev.mysql.com/doc/refman/8.4/en/miscellaneous-functions.html#function_name-const
  • 2618: More aggressively elide IN filters used for indexed lookups
    re: #8215
  • 2617: More QueryProps, missed max1rowiter usage
  • 2613: Query properties rule filtering
    Edit most of the analyzer interfaces to pass a new context object that accumulates query specific properties. Currently the object is called QueryFlags, and accumulates information about the query to inform better rule filtering and more efficient spooling strategies.
    The change that has the biggest effect on oltp_point_select perf is the sql.QFlagMax1Row setting, which lets us skip the default results iter boilerplate when we're only returning one row. Added a couple other skips for rules that are easy to whitelist correctly and show prominently on CPU profiles, like aggregations and subqueries.

vitess

  • 361: adding instant as non-reserved keyword
    The INSTANT keyword isn't in the MySQL docs, but it is a non reserved keyword.
    MySQL Docs: https://dev.mysql.com/doc/refman/8.4/en/keywords.html
    fixes: #8220
  • 360: Bug fix: Preserve sign for integers in prepared statements
    Bound integer values for prepared statements are parsed from the wire and packaged into int64 values that are then passed to the SQL engine to execute with the prepared statement. For int8, int16, int24, and int32 types those bytes from the wire weren't getting cast to the correct type first, before they were cast to int64, which meant if the signed bit was set, the value was interpreted incorrectly.
    Customer issue: #8085

Closed Issues

  • 8220: Correctness Issue, queries run differently on MySQL and Dolt
  • 8206: Unknown JSON struct tag in schema_marshaling.go
  • 8167: Scheduled events fail to execute after a server restart
  • 8114: dolt_status table unhelpful during merge when there are constraint violations.

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 2.07 3.02 1.5
groupby_scan 13.7 17.63 1.3
index_join 1.37 2.66 1.9
index_join_scan 1.3 2.18 1.7
index_scan 34.95 54.83 1.6
oltp_point_select 0.18 0.3 1.7
oltp_read_only 3.49 5.99 1.7
select_random_points 0.34 0.65 1.9
select_random_ranges 0.39 0.83 2.1
table_scan 34.95 55.82 1.6
types_table_scan 75.82 144.97 1.9
reads_mean_multiplier 1.7
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.13 5.99 0.7
oltp_insert 3.82 3.02 0.8
oltp_read_write 8.58 12.08 1.4
oltp_update_index 3.89 3.02 0.8
oltp_update_non_index 3.89 2.97 0.8
oltp_write_only 5.47 6.21 1.1
types_delete_insert 7.7 6.55 0.9
writes_mean_multiplier 0.9
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 98.12 38.64 2.5
tpcc_tps_multiplier 2.5
Overall Mean Multiple 1.70