Merged PRs
dolt
- 6957: Avoid deserializing value on FK check
- 6956: fix
sql_mode
column access ofdolt_schemas
table
The databases that were created beforesql_mode
column was added todolt_schemas
table does not have this column, so access this column needs to be check beforehand. - 6933: store
GEOMETRY
types asBLOB
s
To get around the 65k limit on our fields, we should storeGEOMETRY
types asBLOB
s.
Additionally, MySQL stores these as out of band BLOBs.
This will also probably worsen the performance ofGEOMETRY
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 theHandler
interface to passmysql.PrepareData
into theComPrepare
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 namedgeometry
- 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 |
---|