github dolthub/dolt v0.41.3
0.41.3

latest releases: v1.43.13, v1.43.12, v1.43.11...
2 years ago

Merged PRs

dolt

  • 4335: cmd user/password arguments always override yaml config
    Closes: #4333
  • 4324: go/store/prolly/{message, tree}: Reduce memory footprint of message.ItemAccess, tree.Node
    • Refactored message.ItemAccess (previously ItemArray) to decrease memory footprint from 48 bytes to 10.
    • Refactored tree.Node to decrease memory footprint from 152 bytes to 56
    • tree.nodeCache now caches tree.Node instead of chunks.Chunk. This eliminates decode time for cache hits.
    • Reworked lock striping to tree.nodeCache to improved access latency.
  • 4323: go/utils/remotesrv: Make remotesrv implementation into a library which can be used from dolt proper.
    Adds some functionality to remotesrv:
    • -http-port and -grpc-port can be the same, in which case there is only one listener and both gRPC and file server traffic are served over the same port.
    • the grpc server will echo the incoming request's :authority header, with the supplied -http-port, if no -http-host is supplied. Changes the default behavior of remotesrv to be that, rather than generating URLs with an authority component containing localhost as the hostname.
  • 4316: Trim trailing nil fields from tuples
    This PR enforces a canonical form for tuples. Any tuple that has trailing nil field(s) will be truncated to the first non-nil field. This fixes #4270.
  • 4314: go/store/prolly: Bound maximum pending writes to prolly.MutableMap

go-mysql-server

  • 1255: fix numberTypeImpl.SQL() to convert from any type
    The SQL method for numberTypeImpl expects v to already be the right type for the baseType, this is not always the case.
    CASE statements have an error guard for this behavior, which shouldn't be there.
    There are likely other types that have SQL() methods that don't work for all types.
    Changes:
    • added type switch for types that are unconvertable to number
    • remove analyzer rule 'validateCaseResultTypesId`
      Closes #4306
  • 1252: Reimplemented LIKE expressions to add collation support
    Previously, we were converting the patterns from LIKE expressions into patterns that the standard regex parser would understand. Said parser does not support collations (as implemented in MySQL), therefore this is a custom-developed pattern matcher for LIKE expressions that fully supports collations.
    This is ONLY for patterns on the LIKE expression. We still need to implement full regex parsing to support REGEXP_LIKE.. Once we have REGEXP_LIKE completed, we may revert this back to the regex conversion process, but that will be no time soon.
    This also fixes #4303
  • 1249: UpdateJoin bug fixes
    Bug fixes for #4288
    • qualifying check constraint expressions when multiple tables are being updated
    • support finding UpdatableTables through ProcessIndexableTable and ProcessTable nodes
    • erroring out when a table updater isn't available for a SetField expression, instead of silently dropping it
      This does not address another UpdateJoin bug I just found while testing: #4304. Mentioning that one here so we have this context connected when we go to fix it.
      I verified that Dolt's enginetest suite runs correctly with these changes.

Closed Issues

  • 4269: sum() of decimal types with negative numbers is incorrect
  • 4333: Support --user and --password sql-server args even if their is a config.yaml
  • 4270: Diff shows rows that have no diffs when a column has been added in the past.
  • 4306: Panic on "conflicting" result types in IF() function
  • 4288: Query to revert a single column fails
  • 4303: Double backslash results in unexpected LIKE comparison

Latency

Current Default Format (__LD_1__)

Read Tests MySQL Dolt Multiple
covering_index_scan 1.96 6.55 3.3
groupby_scan 12.3 22.28 1.8
index_join 1.16 16.71 14.4
index_join_scan 1.12 16.12 14.4
index_scan 30.81 71.83 2.3
oltp_point_select 0.15 0.57 3.8
oltp_read_only 2.97 9.56 3.2
select_random_points 0.3 1.37 4.6
select_random_ranges 0.35 1.37 3.9
table_scan 31.37 68.05 2.2
types_table_scan 69.29 612.21 8.8
reads_mean_multiplier 5.7
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 3.13 19.65 6.3
oltp_insert 1.67 7.98 4.8
oltp_read_write 5.37 36.24 6.7
oltp_update_index 1.73 9.22 5.3
oltp_update_non_index 1.73 6.43 3.7
oltp_write_only 2.43 26.2 10.8
types_delete_insert 3.25 155.8 47.9
writes_mean_multiplier 10.8
Overall Mean Multiple 7.9

New Format (__DOLT__)

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.71 1.4
groupby_scan 12.08 16.71 1.4
index_join 1.16 4.57 3.9
index_join_scan 1.12 3.96 3.5
index_scan 30.81 52.89 1.7
oltp_point_select 0.15 0.46 3.1
oltp_read_only 2.97 8.28 2.8
select_random_points 0.3 0.73 2.4
select_random_ranges 0.36 1.12 3.1
table_scan 30.81 63.32 2.1
types_table_scan 70.55 580.02 8.2
reads_mean_multiplier 3.1
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 2.48 11.24 4.5
oltp_insert 1.34 2.76 2.1
oltp_read_write 5.0 17.01 3.4
oltp_update_index 1.27 5.09 4.0
oltp_update_non_index 1.23 5.28 4.3
oltp_write_only 2.07 8.28 4.0
types_delete_insert 2.81 13.46 4.8
writes_mean_multiplier 3.5
Overall Mean Multiple 3.2

Don't miss a new dolt release

NewReleases is sending notifications on new releases.