github dolthub/dolt v1.30.1
1.30.1

latest releases: v1.43.1, v1.43.0, v1.42.20...
9 months ago

Merged PRs

dolt

  • 7158: /{go,integration-tests}: add oci blobstore implementation
    This PR adds an Oracle Cloud Infrastructure (OCI) blobstore implementation.
    OCIBlobstore.Concatenate is unimplemented as OCI doesn't currently support building composite objects.
    OCIBlobstore.Put will use the objectstorage.PutObject method for uploads smaller than the minimum multipart upload part size of 10MB, but will use the Multipart Upload process for all uploads larger than 10MB.
    Objects have a VersionId as well as an ETag, however the ETag value is used for the conditional match header, not the VersionId, see https://github.com/oracle/oci-go-sdk/blob/v65.54.0/objectstorage/get_object_request_response.go?s=719:5196#L39
    UPDATE: this PR also contains changes so that an Oracle bucket can be used as a remote and backup

go-mysql-server

  • 2217: Fix decimal parsing bug
    Decimals with capitalized exponential 'E' were incorrectly bound to literals, losing precision in some cases.
    select 5.0E-5; // -> 0.0001
  • 2210: sql/planbuilder: Update join defaults are not prefixed, need individual table schemas to resolve
    Updates need to resolve default expressions. The input definitions for update joins include the total join output columns. If two of those columns have the same name, the target table's unqualified default expression will throw an "ambiguous column" error. We partition the update join schemas/column definitions to sidestep the error.
    The case where this is problematic is ALTER COLUMN expressions, where only the columns being modified are scoped for some reason. In those cases, I create a new scope with the source table schema to provide the full set of underlying column definitions. There is probably a whole class of virtual columns/column default bugs related to the way we resolve alter statements.
  • 2208: fix type evaluating for mult and div arithmetic operations
    • For Mult expression, the .Type() method is fixed that it returns correct type for decimal type results, which uses the sum of precision and scale values of its right and left values.
    • For Div expression, the .Type() method is fixed that it returns the correct precision and scale for the final result.
  • 2204: fix foreign key panic on update
    When resolving ForeignKeys, ForeignKeyReferenceHandler.CheckTable() calls Partition() and iterates over all rows in the referenced table to ensure that the key is valid (doesn't contain any values that are not in the referenced table).
    WriteableIndexedDoltTable prevents us from reading every value through Partition() as it is only supposed to return rows that match the index range. Additionally, there are some differences between the way MySQL and dolt handle certain ddl and dml operations during delayed resolution of Foreign Keys.
    To fix this, we selectively perform table scans (only when we are creating/altering the table to resolve foreign keys).
    Fixes #6963
    Companion PR: #7203

Closed Issues

  • 6963: Update FK panic

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 2.18 2.81 1.3
groupby_scan 12.98 17.32 1.3
index_join 1.34 5.0 3.7
index_join_scan 1.25 2.07 1.7
index_scan 33.72 63.32 1.9
oltp_point_select 0.17 0.43 2.5
oltp_read_only 3.36 7.7 2.3
select_random_points 0.32 0.73 2.3
select_random_ranges 0.39 0.87 2.2
table_scan 34.33 63.32 1.8
types_table_scan 74.46 173.58 2.3
reads_mean_multiplier 2.1
Write Tests MySQL Dolt Multiple
oltp_delete_insert 5.47 5.99 1.1
oltp_insert 2.66 2.91 1.1
oltp_read_write 7.43 14.73 2.0
oltp_update_index 2.86 3.02 1.1
oltp_update_non_index 2.86 2.97 1.0
oltp_write_only 4.03 7.3 1.8
types_delete_insert 5.37 6.55 1.2
writes_mean_multiplier 1.3
Overall Mean Multiple 1.7

Don't miss a new dolt release

NewReleases is sending notifications on new releases.