github dolthub/dolt v1.50.4
1.50.4

latest release: v1.50.5
2 days ago

Merged PRs

dolt

  • 8976: go: sqle/dsess: session.go: Fix transaction savepoint creation when cluster replication is enabled.
    Cluster replication creates a system database, dolt_cluster, which does not support transactions. There are also UserSpaceDatabases which do not support CreateTransaction. CreateTransaction has special code to avoid visiting them when recording the start transaction state. CreateSavepoint needed to be updated with that logic as well.
  • 8974: Add support for setting notices in the session
    Adds the ability to queue notice messages in the session, for them to be sent to the client during the execution phase. Related to dolthub/doltgresql#1255.
  • 8970: Fix InsertID discrepancy tests
    Fixes tests involving OKPacket's InsertID not aligning with last_insert_id.
    related: #8914
    bump: dolthub/go-mysql-server#2886

go-mysql-server

  • 2886: reintroduce last_insert_id discrepancy
    Apparently the last_insert_id in ok result, is not the same as select last_insert_id().
    When there is an auto_increment column, the insert_id in the OKResult is the first value that increments the auto_increment value.
    Reverts some changes from: dolthub/go-mysql-server#2616
    fixes: #8914
  • 2885: [planbuilder] sort expression aliases always referenced
    This fixes a bug where a sort expression alias computed in the lower projection fails to index the nested expression.
    Below, the first plan's sort searches for c5:6 in the child, but only finds a:7. The second plan fixes the correctness issue. Obviously there are more desirable projection organizations that version two, but this is small enough of an edge case that I think rewriting projection management with proper expression interning would be overkill right now. The rest of the plan tests look OK/improvements.
    select distinct abs(c5) as a from one_pk where c2 in (1,11,31) order by a
    before:
    Sort(abs(one_pk.c5:6)->a:7 ASC nullsFirst)
    └─ Distinct
    └─ Project
    ├─ columns: [abs(one_pk.c5:1)->a:0]
    └─ Filter
    ├─ HashIn
    │   ├─ one_pk.c2:0
    │   └─ TUPLE(1 (tinyint), 11 (tinyint), 31 (tinyint))
    └─ ProcessTable
    └─ Table
    ├─ name: one_pk
    └─ columns: [c2 c5]
    after:
    Distinct
    └─ Project
    ├─ columns: [abs(one_pk.c5:5)->a:0]
    └─ Sort(a:6 ASC nullsFirst)
    └─ Project
    ├─ columns: [one_pk.pk:0!null, one_pk.c1:1, one_pk.c2:2, one_pk.c3:3, one_pk.c4:4, one_pk.c5:5, abs(one_pk.c5:5)->a:0]
    └─ Filter
    ├─ HashIn
    │   ├─ one_pk.c2:2
    │   └─ TUPLE(1 (tinyint), 11 (tinyint), 31 (tinyint))
    └─ ProcessTable
    └─ Table
    ├─ name: one_pk
    └─ columns: [pk c1 c2 c3 c4 c5]

Closed Issues

  • 8964: Recurrent Panic with querying geometry types after some queries
  • 8926: BUG: BEFORE UPDATE Trigger Not Working in Dolt
  • 8914: MySQL is not consistent regarding last_insert_id; go-mysql-server ceased to emulate this inconsistency in v0.19.0

Performance

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 0.67 0.34
groupby_scan 13.46 17.63 1.31
index_join 1.5 2.43 1.62
index_join_scan 1.44 1.42 0.99
index_scan 36.89 29.72 0.81
oltp_point_select 0.18 0.26 1.44
oltp_read_only 3.49 5.09 1.46
select_random_points 0.34 0.59 1.74
select_random_ranges 0.37 0.62 1.68
table_scan 36.89 30.81 0.84
types_table_scan 80.03 112.67 1.41
reads_mean_multiplier 1.24
Write Tests MySQL Dolt Multiple
oltp_delete_insert 8.9 6.21 0.7
oltp_insert 4.1 3.07 0.75
oltp_read_write 9.06 11.24 1.24
oltp_update_index 4.18 3.13 0.75
oltp_update_non_index 4.18 3.07 0.73
oltp_write_only 5.77 6.21 1.08
types_delete_insert 8.43 6.55 0.78
writes_mean_multiplier 0.86
TPC-C TPS Tests MySQL Dolt Multiple
tpcc-scale-factor-1 96.5 40.13 2.4
tpcc_tps_multiplier 2.4
Overall Mean Multiple 1.50

Don't miss a new dolt release

NewReleases is sending notifications on new releases.