github dolthub/dolt v0.75.7
0.75.7

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

Merged PRs

dolt

  • 5624: Fix dolt_gc for repositories newly using chunk journal.
    When a repository was created with < 0.75.0, or if it was created and used with DOLT_DISABLE_CHUNK_JOURNAL=true, it does not have a chunk journal. If it then runs dolt in a mode where it uses the chunk journal, the journal will not be bootstrapped until a write is done against the database. In the state where dolt is using the chunk journal but the chunk journal is not bootstrapped, dolt gc and call dolt_gc() were broken. They would fail with the message: concurrent manifest edit during GC, before swapTables. GC failed..
    This fixes that by making the chunk journal forward UpdateGCGen manifest update calls in its non-bootstrapped state, the same way it forwards Update manifest calls.
  • 5615: Allow logging base64-encoded queries, instead of replacing bad chars.
  • 5602: Added test for avoiding multiple parens issue.
    #5478

go-mysql-server

  • 1667: Allow logging base64-encoded queries, instead of replacing bad chars.
  • 1666: join operator hints
    Join order (JOIN_ORDER(a,b)) and operator hints (LOOKUP_JOIN(a,b)) play nice together when there is a plan that satisfies all hints. If order and operator hints are are incompatible, no hints are applied.
    Example:
    > explain
    select /*+ JOIN_ORDER(a,b,c,d) LOOKUP_JOIN(d,c) MERGE_JOIN(b,a) HASH_JOIN(c,a)*/ 1
    from xy a
    join uv b on a.x = b.u
    join xy c on a.x = c.x
    join uv d on d.u = c.x;
    QueryProcess
    └─ Project
    ├─ columns: [1 (tinyint)]
    └─ HashJoin
    ├─ Eq
    │   ├─ a.x:0!null
    │   └─ c.x:2!null
    ├─ MergeJoin
    │   ├─ cmp: Eq
    │   │   ├─ a.x:0!null
    │   │   └─ b.u:1!null
    │   ├─ TableAlias(a)
    │   │   └─ IndexedTableAccess(xy)
    │   │       ├─ index: [xy.x]
    │   │       ├─ static: [{[NULL, ∞)}]
    │   │       └─ columns: [x]
    │   └─ TableAlias(b)
    │       └─ IndexedTableAccess(uv)
    │           ├─ index: [uv.u]
    │           ├─ static: [{[NULL, ∞)}]
    │           └─ columns: [u]
    └─ HashLookup
    ├─ source: TUPLE(a.x:0!null)
    ├─ target: TUPLE(c.x:0!null)
    └─ CachedResults
    └─ LookupJoin
    ├─ Eq
    │   ├─ d.u:3!null
    │   └─ c.x:2!null
    ├─ TableAlias(c)
    │   └─ Table
    │       ├─ name: xy
    │       └─ columns: [x]
    └─ TableAlias(d)
    └─ IndexedTableAccess(uv)
    ├─ index: [uv.u]
    └─ columns: [u]
  • 1665: Fix filter hoisting issue
    Before hoisting a filter condition inside a subquery, check if the condition is using any of the subquery tables.
    This also includes a minor renaming change: when hoisting a table and there's a possibility of a name collision, we now add an unambiguous table alias.
    Fixes: #5342
  • 1661: AlterIndex completely resolves column defaults
    #5478

Closed Issues

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.0 2.71 1.4
groupby_scan 12.3 16.41 1.3
index_join 1.16 4.03 3.5
index_join_scan 1.12 2.07 1.8
index_scan 30.81 53.85 1.7
oltp_point_select 0.15 0.48 3.2
oltp_read_only 3.02 8.58 2.8
select_random_points 0.3 0.73 2.4
select_random_ranges 0.36 1.14 3.2
table_scan 31.37 54.83 1.7
types_table_scan 69.29 161.51 2.3
reads_mean_multiplier 2.3
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 5.09 5.77 1.1
oltp_insert 2.52 2.86 1.1
oltp_read_write 6.67 15.83 2.4
oltp_update_index 2.48 2.97 1.2
oltp_update_non_index 2.57 2.86 1.1
oltp_write_only 3.55 7.56 2.1
types_delete_insert 5.18 6.55 1.3
writes_mean_multiplier 1.4
Overall Mean Multiple 1.9

Don't miss a new dolt release

NewReleases is sending notifications on new releases.