v0.8.0
版本发布时间: 2021-02-02 03:04:35
dolthub/go-mysql-server最新发布版本:v0.18.1(2024-04-10 00:31:02)
This release includes many performance improvements and features, notably including indexed joins for 3 or more tables.
Merged PRs
- 278: remove sync.Once from autoincrement expression
- 275: add StatisticsTable interface
-
274: Fixed various bugs in subquery execution, added table ordering optimization
Fixes many correctness issues in subquery execution:
- Incorrect field indexes for subquery aliases in some cases
- Incorrect field indexes for subquery expressions in the case of column pruning in other parts of the query
- Queries selecting the same table more than once with aliases getting incorrect indexes applied Also introduces performance enhancements:
- Table ordering optimizations based on rows counts of tables in a join
- Better use of index pushdown for some join queries
-
273: Added the VALUES() function
Requested in: https://github.com/dolthub/dolt/issues/1225
VALUES()
is deprecated in the latest versions of MySQL (as of version 8.0.20, released April 2020), but it is recent enough that I feel its inclusion in the engine is justified. - 271: add ability to remove rules
- 270: Fixed bug in creating self-referential foreign key constraint
-
269: Fix: not check tcp6 socket state while ipv6 is disabled
If ipv6 is disabled on the system, tcp6 will not exist in the
/proc/net
dir. So open /proc/net/tcp6 will produce the error open /proc/net/tcp6: No such file or directory, we should not always check tcp6 socket state(unless it is opened). - 268: Bug fix for https://github.com/dolthub/dolt/issues/1219
- 267: sql/plan/exchange.go: Increase exchange node row chan buffer to 16 * parallelism.
- 265: Fixed bug in inserting literal NULL values as part of a SELECT statement Signed-off-by: Zach Musgrave zach@dolthub.com
- 264: Fix bugs in union distinct semantics, allow them in inserts
- 263: Export the struct param for NNary
- 262: sql/plan: exchange.go: Recover from panics in goroutine spawned by iterPartition.
- 258: sql/session.go: NewSpanIter: Enable this when the tracer is not Noop.
- 257: disable projection on indexed join
- 256: added describe queries for keyless tables
- 255: This function implement an Naryfunction type. Allows you to define sqle functions that have multiple children.
-
254: Fixed UNHEX/HEX roundtrip
Simple fix but I ended up completely reevaluating our binary type implementation. Fixed a bug found in the
cast
package we were using to convert strings, and also changedUNHEX
to return the proper SQL type. - 252: Added hash functions
- 249: Alias bug fixes Fixes a number of buggy behaviors involving column indexes and table name resolution.
- 248: additional tests add a table with multiple keys an index that has a subset of those keys in a different order a couple queries
- 246: Error changes for INSERT ON DUPLICATE KEY UPDATE
- 245: Fixed tuple comparisons
- 242: Added TRUNCATE table and a DELETE fast path
- 240: Enginetests for Keyless tables
- 239: Zachmu/naked functions Fix for naked CURRENT_USER function call was in vitess, this just adds tests.
- 238: Zachmu/funcs Got rid of all embedded function fields in function types, since they make it impossible for analyzer to finish (function fields are not comparable with reflect.DeepEquals, which the analyzer uses to decide if the query plan has settled).
- 237: Added IS NULL and IS NOT NULL to indexing
- 236: Zachmu/indexed joins This needs more unit tests for the new join planner and more extensive engine tests for various kinds of N-table joins, but otherwise this is complete and I'm confident it works (for some values of works)
- 235: pickup vitess
- 234: Added no-op BEGIN support Signed-off-by: Zach Musgrave zach@dolthub.com
- 233: Reorder Master
- 232: Indexes search for exact match rather than submatches
- 231: added 'auto_increment' to EXTRA field for DESCRIBE table;
- 229: Add support for prepared statements.
-
227: added alter table auto_increment support
This PR changes the semantics of
AutoIncrementTable.GetAutoIncrementValue()
to return the current value of the sequence, ie the nextAUTO_INCREMENT
id. Previously the semantics were to return the last used id. The return value of the function should now match what would be seen in MySQL'sinformation_schema.table
table - 226: Zachmu/logictest Harness and runner for sqllogictest suite against the in-memory database implementation.
- 225: Andy/mysql auto increment
- 224: Zachmu/xx Use xxhash everywhere, and standardize the construction of hash keys.
- 223: Zachmu/in subquery Implemented hashed lookups for IN (SELECT ... ) expressions. This is about 5x faster than using indexed lookups into the subquery table in tests. In a followup I'm going to replace the existing CRC64 hashing with xxhash everywhere it's used, so we're back to a single hash function.
- 221: Fixed bug in delete and update caused by indexes being pushed down to… … tables
- 220: Support for COM_LIST_FIELDS, fixed SHOW INDEXES
-
219: Zachmu/turbine perf
- Do pushdown analysis within subqueries
- Push index lookups down to tables in subqueries
- 43: Zachmu/current user
- 42: error on COM_STMT_FETCH
- 41: go/mysql/conn.go: Ensure we write error packets for malformed queries in prepare statements.
- 40: added parser support for ALTER TABLE t AUTO_INCREMENT = int
- 39: support for COM_FIELD_LIST
Closed Issues
-
279: err:
go get github.com/dolthub/go-mysql-server
- 261: Preserve NULL values on insert into tables using sub select queries
- 260: Support for UNION in INSERT statements
- 259: Support for UNION DISTINCT
- 253: Better support for parallel tests
- 241: expression.Tuple is uncomparable
- 230: DB Startup Config File - values not utilized
- 228: Create Table Statement to NewTable format?