github dolthub/dolt v1.24.3
1.24.3

latest releases: v1.43.0, v1.42.20, v1.42.19...
10 months ago

Merged PRs

dolt

  • 6957: Avoid deserializing value on FK check
  • 6956: fix sql_mode column access of dolt_schemas table
    The databases that were created before sql_mode column was added to dolt_schemas table does not have this column, so access this column needs to be check beforehand.
  • 6933: store GEOMETRY types as BLOBs
    To get around the 65k limit on our fields, we should store GEOMETRY types as BLOBs.
    Additionally, MySQL stores these as out of band BLOBs.
    This will also probably worsen the performance of GEOMETRY types as it just takes longer to reference.
    Fixes #6927

go-mysql-server

  • 2133: Add query plans for index/join sysbench queries
  • 2132: ReferenceChecker interface
    re: #6957 It is expensive and unnecessary to deserialize blobs during FK reference check lookups.
  • 2130: More TPC-C tests, fix the slow HASH_JOIN
    The randIO parameter for LOOKUP_JOIN costing was perhaps too strict, since that cost is already stacked on top of the sequential cost. This isn't a replacement for better costing, but boosts TPC-C perf a bit and isn't less correct than the previous version.
    This was the motivating query, executed as a HASH_JOIN before:
    sbt> explain SELECT COUNT(DISTINCT (s_i_id)) FROM order_line3, stock3 WHERE ol_w_id = 1 AND ol_d_id = 5 AND ol_o_id < 3003 AND ol_o_id >= 2983 AND s_w_id= 1 AND s_i_id=ol_i_id AND s_quantity < 18;
    +------------------------------------------------------------------------------------------------------------+
    | plan                                                                                                       |
    +------------------------------------------------------------------------------------------------------------+
    | Project                                                                                                    |
    |  ├─ columns: [countdistinct([stock3.s_i_id])]                                                              |
    |  └─ GroupBy                                                                                                |
    |      ├─ SelectedExprs(COUNTDISTINCT([stock3.s_i_id]))                                                      |
    |      ├─ Grouping()                                                                                         |
    |      └─ LookupJoin                                                                                         |
    |          ├─ IndexedTableAccess(order_line3)                                                                |
    |          │   ├─ index: [order_line3.ol_w_id,order_line3.ol_d_id,order_line3.ol_o_id,order_line3.ol_number] |
    |          │   ├─ filters: [{[1, 1], [5, 5], [2983, 3003), [NULL, ∞)}]                                       |
    |          │   └─ columns: [ol_o_id ol_d_id ol_w_id ol_i_id]                                                 |
    |          └─ Filter                                                                                         |
    |              ├─ ((stock3.s_w_id = 1) AND (stock3.s_quantity < 18))                                         |
    |              └─ IndexedTableAccess(stock3)                                                                 |
    |                  ├─ index: [stock3.s_w_id,stock3.s_i_id]                                                   |
    |                  ├─ columns: [s_i_id s_w_id s_quantity]                                                    |
    |                  └─ keys: 1, order_line3.ol_i_id                                                           |
    +------------------------------------------------------------------------------------------------------------+
    
  • 2121: fix panic when calling ST_POINTFROMWKB() with no arguments

vitess

  • 288: allow unquoted non reserved keywords for drop and rename column ddl
    fixes #6950
  • 287: support int1,int2,int3,int4,int8 aliases
    fixes #6900
  • 286: Logging improvements
    Logging a couple more error handling spots. Changing the Handler interface to pass mysql.PrepareData into the ComPrepare function so that GMS can log the params count at a debug level.
    Related GMS PR: dolthub/go-mysql-server#2098

Closed Issues

  • 6950: Cannot DROP column if it's named geometry
  • 6927: "value exceeded max field size of 65kb" when inserting large geometry
  • 6910: No value for column when attempting to insert a record without providing a value for a column with a default
  • 6946: Error when running large dump
  • 6951: Slow merge when new index was added (re-indexing every merge?)

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.11 2.71 1.3
groupby_scan 13.22 17.01 1.3
index_join 1.34 5.09 3.8
index_join_scan 1.27 2.18 1.7
index_scan 34.33 54.83 1.6
oltp_point_select 0.17 0.41 2.4
oltp_read_only 3.36 7.3 2.2
select_random_points 0.32 0.68 2.1
select_random_ranges 0.39 0.94 2.4
table_scan 34.33 55.82 1.6
types_table_scan 74.46 158.63 2.1
reads_mean_multiplier 2.0
Write Tests MySQL Dolt Multiple
oltp_delete_insert 7.98 6.79 0.9
oltp_insert 3.75 3.36 0.9
oltp_read_write 8.28 14.73 1.8
oltp_update_index 3.82 3.43 0.9
oltp_update_non_index 3.82 3.3 0.9
oltp_write_only 5.37 7.56 1.4
types_delete_insert 7.7 7.3 0.9
writes_mean_multiplier 1.1
Overall Mean Multiple 1.6

Don't miss a new dolt release

NewReleases is sending notifications on new releases.