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 fordolt
and push on every release
Dockerfile is WIP - 4467: store/datas/pull: If the BPS is less than 1, report 0
^ 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 inHAVING
node that it is not in its immediate children nodes. - 1304: integration plan regressions
This PR addresses two problems:- 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.
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 inprojectedAliases
inreorderProjection
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 forfix for: #4436BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
- 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()
andST_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 withoutGROUPBY
- 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 |
---|