Navigation Menu

Skip to content

0.50.2

Compare
Choose a tag to compare
@github-actions github-actions released this 07 Oct 23:23

Merged PRs

dolt

  • 4492: go/doltcore/env: Fix format logic for multi-database environments
  • 4471: go/doltcore/actions: Sample CSV rows when inferring schema on import
  • 4470: push docker image to dockerhub
    Build Docker Image for dolt and push on every release
    Dockerfile is WIP
  • 4467: store/datas/pull: If the BPS is less than 1, report 0
    image
    ^ prevents the push / pull progress reporter from reporting very small BP/s units.
  • 4466: go: sqle: remotesrv: Successfully replicate CREATE DATABASE commands by instantiating new databases on the standby on demand.
  • 4461: wrap spatial type string in single quotes when exporting
  • 4458: Persist a commit mapping to the chunkstore after migration
    The commit mapping is persisted as dangling chunks. We don't expect it to remain after a GC and it will not be picked up during a push or pull.
  • 4449: integration-tests/go-sql-server-driver: Proof of concept a declarative approach to integration tests for sql-server interactions.
    Converts bats/sql-server-config.bats to use a new approach.

go-mysql-server

  • 1316: Slight port correction on README example
  • 1315: Updated README example to fit current usage
    We haven't used []string{""} for JSON values in a long time, the README definitely needed an update.
  • 1308: parallelize static lookups
  • 1307: allow having node access to all tables in itself
    HAVING clause can reference column that is not in its select result or group by result (there can be no group by clause). These column references are from tables in HAVING node that it is not in its immediate children nodes.
  • 1304: integration plan regressions
    This PR addresses two problems:
    1. Optimization rules that depend on pattern matching can fail to trigger with exchange nodes, which we failed to account for in testing. This fixes a small indexed join bug and runs integration query plans with parallelism = 2.
    2. IndexedInSubqueryFilter should be prevented when the static side of the join takes a dependency on the index lookup. The check is now looser, and opaque nodes cannot disallow the transform. When we introduce subqueries that do reference outer scopes, we will need to be more careful and do deeper validation.
  • 1303: adding support for st_area, st_perimeter, st_length
    Only the Cartesian portion of these function is working, geodetic calculations are quite a bit harder.
    I just throw an error for any unsupported functionality.
    st_area is calculated using shoelace formula.
    Basic idea is to slice polygon into a bunch of triangles and sum up their areas. The function is not defined for polygons that intersect themselves, but from my testing it seems like MySQL returns the same values for these edge cases.
    st_perimeter is a NOT supported in MySQL, but it is in PostGIS (a postgres plugin for spatial types): https://postgis.net/docs/ST_Perimeter.html
    Fix for: #4451
  • 1301: Ensuring read-only check is executed for prepared and non-prepared statements
    Quick fix for: #4434
    Tested locally with a python script to verify that prepared statements to read-only dbs are now correctly blocked. After getting this fix out, we will follow up with more formal, automated test to cover this.
  • 1293: no column reference can be made on dual table
    Depends on dolthub/vitess#196
    No GetField reference can be made on dual table. To differentiate between dual table and `dual` table(which can be created).
    Dual table is constructed as ResolvedTable with empty table name and a single column with empty name in the parser.
    Any column reference that becomes deferredColumn is replaced into alias that is present in projectedAliases in reorderProjection rule.
    Any GetField column reference is not allowed on dual table.

vitess

  • 197: adding better support for transaction statements
    MySQL reference: https://dev.mysql.com/doc/refman/8.0/en/commit.html
    adds support for
    BEGIN [WORK]
    COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
    ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
    fix for: #4436
  • 196: allow dual only for select from statements if used without back-ticks

Closed Issues

  • 3039: Implement the CHECK TABLE syntax.
  • 4498: Incorrect Group by syntax passes validation and executes
  • 3008: Support CASCADE syntax for ALTER TABLE
  • 4497: Support all MySQL logical operators
  • 4483: Support JOIN in UPDATE for unkeyed tables
  • 1225: VALUES not accessible by variable name in ON DUPLICATE KEY UPDATE
  • 3337: Difficult to identify differences in dolt_docs when in conflict
  • 3205: QGIS plugin
  • 809: dolt sql-server should ignore subdirectories that are not Dolt repos with a warning
  • 3959: Transactional commit does not work when autocommit is off and a database is not selected
  • 3149: Upload units do not properly update
  • 4416: Can't round trip dolt dump
  • 3729: Data from export table failed to load via LOAD DATA
  • 4463: Official Docker hub image?
  • 1841: Make dolt_branches table read-only.
  • 4459: New table partitions code doesn't appear to be concurrent safe.
  • 3763: concurrency errors with dolt_merge
  • 3470: Subscribe to changes to a document/query (live query)
  • 3445: Go index servers didn't pick up the dolt project
  • 3219: TestLoadData fails with Dolt integrator
  • 3160: Dolt panic on attempt to push to branch without permission
  • 3130: Prevent altering table tables to have FULLTEXT key property
  • 4451: Implement the ST_AREA() and ST_PERIMETER() functions
  • 3018: Audit Error Codes
  • 3020: UNION does not respect ORDER BY or LIMIT
  • 575: Bad error message for omitting branch in push command
  • 515: git-dolt update should be able to update dolt repo and handle branch references
  • 4256: dual table has different behavior from MySQL, some cause panics
  • 4435: Question on REPLACE with trigger
  • 4434: read_only mode in sql-server not working properly
  • 1289: Some queries using HAVING can't be executed without GROUPBY
  • 1314: Cannot connect to database to query MemoryTable
  • 750: Copy the mysql behaviour regarding reserved keywords
  • 738: mysql SERIAL alias unsupported
  • 644: SHOW TABLE CREATE PRIMARY KEY ordering
  • 611: Bad error message for type conversion error on insert
  • 610: EXISTS expects a single column in subquery result, should support any number
  • 592: Creating a table without a current DB give confusing error message
  • 562: Intermittent DATA RACE error when creating MySQL Servers
  • 561: Support for generated columns
  • 526: Cleanup PrimaryKey error vs UniqueKey error vs DuplicateEntry
  • 513: Need tests of PREPARE
  • 498: Inserting into UINT32 column can cause error with leading 0
  • 479: Cannot use expression index in indexed join
  • 476: Can a Table implement sql.IndexAddressableTable without implementing sql.DriverIndexableTable?
  • 383: Unbound variables in subqueries
  • 463: anyone writing the rocksdb backend?

Latency

Read Tests MySQL Dolt Multiple
covering_index_scan 1.93 2.86 1.5
groupby_scan 12.3 17.01 1.4
index_join 1.16 4.49 3.9
index_join_scan 1.12 3.82 3.4
index_scan 30.26 51.94 1.7
oltp_point_select 0.15 0.47 3.1
oltp_read_only 2.97 8.58 2.9
select_random_points 0.3 0.74 2.5
select_random_ranges 0.35 1.14 3.3
table_scan 30.81 62.19 2.0
types_table_scan 70.55 183.21 2.6
reads_mean_multiplier 2.6
Write Tests MySQL Dolt Multiple
bulk_insert 0.001 0.001 1.0
oltp_delete_insert 3.07 11.24 3.7
oltp_insert 1.5 2.81 1.9
oltp_read_write 5.18 17.32 3.3
oltp_update_index 1.55 5.0 3.2
oltp_update_non_index 1.55 5.37 3.5
oltp_write_only 2.3 8.43 3.7
types_delete_insert 3.13 12.52 4.0
writes_mean_multiplier 3.0
Overall Mean Multiple 2.8