Merged PRs
dolt
- 9346: /docker/docker-entrypoint.sh: support env vars for creating a default database
- 9344: Nathan/commit time
(Temporarily) fixes issue #8477. Commits in the shell created via\commitnow have the correct time. - 9336: Fix 4160 dolt commit amend flag for initial commit
BuildNewCommit() now checks opts.Amend before implicitly appending parents to commit
Fixes: #4160 - 9271: go: sqle/statspro: Make ANALYZE TABLE faster by circumventing the rate limiter on stats work.
When a user is requesting the analysis, we should not rate limit resource utilization in the same way we do when collecting stats in the background.
Also simplifies the implementation of rate limiting a bit.
go-mysql-server
- 3028: add mysql dialect tag to new
group bytest
newgroup bytest added in dolthub/go-mysql-server#3025 is not Postgres/Doltgres compatible - 3025: Convert if.Eval result to correct type
if.Eval().Type() should evaluate to if.Type(), instead of whatever type the chosen subexpression is.
https://dev.mysql.com/doc/refman/8.4/en/flow-control-functions.html#function_if
Fixes #9320 - 3023:
likematch when collation is unspecified
For some reason theLikeMatcherreturns false with no error on unspecified collation, so this PR fixes that.
Fixes: #9337 - 3021: Added test for
insert...select...returning
Fixes #9248 - 3020: Support OCT() function and fix CONV() mishandling of negative floats and empty string N
MySQL Docs: https://dev.mysql.com/doc/refman/8.4/en/string-functions.html#function_oct
vitess
- 421: fix up constants for server cursor types and add a support for
PARAMETER_COUNT_AVAILABLEcursor
We were missing thePARAMETER_COUNT_AVAILABLEserver cursor type when handling aCOM_STMT_EXECUTE.
Oddly, it seems to behave as if there were no cursor.
MySQL Docs: https://dev.mysql.com/doc/dev/mysql-server/9.3.0/mysql__com_8h.html#a3e5e9e744ff6f7b989a604fd669977da
Fixes: #9313 - 420: Make
returninga reserved keyword
Part of #9248
Makingreturninga reserved keyword allows forreturningclause in all types of insert statements
Closed Issues
- 9035: NULL in GROUP BY column is interpreted as 1
- 9347: Panic with case statements in information_schema.tables access
- 7998: Casting json to string doesn't escape double quotes in keys/values
- 4160: dolt commit --amend returns error for initial commit
- 9313: Incompatibility of streaming prepared statement responses with
github.com/go-mysql-org/go-mysql - 9345: Support
MYSQL_DATABASEandDOLT_DATABASEenvironment variables in Dolt Docker image. - 9320: Group-By with
IFfunction fails to distinguish the integer "1" and the boolean value "true" - 9307: UNKNOWN_CODE_PLEASE_REPORT: No authentication methods available for authentication.
- 9325: Support
OCT()function - 9324: Panic when pushing to remote
Performance
| Read Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| covering_index_scan | 1.86 | 0.68 | 0.37 |
| groupby_scan | 13.46 | 18.61 | 1.38 |
| index_join | 1.47 | 2.48 | 1.69 |
| index_join_scan | 1.44 | 1.44 | 1.0 |
| index_scan | 34.33 | 31.37 | 0.91 |
| oltp_point_select | 0.2 | 0.28 | 1.4 |
| oltp_read_only | 3.75 | 5.37 | 1.43 |
| select_random_points | 0.35 | 0.61 | 1.74 |
| select_random_ranges | 0.38 | 0.64 | 1.68 |
| table_scan | 34.95 | 32.53 | 0.93 |
| types_table_scan | 74.46 | 132.49 | 1.78 |
| reads_mean_multiplier | 1.3 |
| Write Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| oltp_delete_insert | 8.28 | 6.67 | 0.81 |
| oltp_insert | 4.18 | 3.25 | 0.78 |
| oltp_read_write | 9.06 | 11.87 | 1.31 |
| oltp_update_index | 4.25 | 3.36 | 0.79 |
| oltp_update_non_index | 4.18 | 3.25 | 0.78 |
| oltp_write_only | 5.28 | 6.55 | 1.24 |
| types_delete_insert | 8.43 | 7.04 | 0.84 |
| writes_mean_multiplier | 0.94 |
| TPC-C TPS Tests | MySQL | Dolt | Multiple |
|---|---|---|---|
| tpcc-scale-factor-1 | 94.91 | 38.85 | 2.44 |
| tpcc_tps_multiplier | 2.44 |
| Overall Mean Multiple | 1.56 |
|---|