Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
Previously the dolt_clone() stored procedure would take the --user flag, but not use it in a gRPC call to a sql-server. This
addresses this limitation, and adds a test to verify it works.
When we generated the results for MySQL (specifically the float results), we used the golang
fmt.Sprintf('%.3f')
string, even for decimal types. Meanwhile, the doltharness was usingdecimal.Round()
. There's evidently a difference in the way these two rounding operations work, so we had some failures due to rounding errors.This PR makes it so decimals are rounded the same way floats are, so that results are consistent.
go-mysql-server
create view
statementsRelated to Issue creating views across databases dolthub/dolt#7438
Simplify and fix
plan.TableAlias
indexing. Some table alias children have their own expression ids, butsql.TableFunction
implementations don't necessarily extend theplan.TableIdNode
interface and rely on the analyzer to populate column ids. There are a couple ways to simplify this in the future, like adding an intermediate prunable sql.Projector node for table functions, or having pruning clean up after itself by updating node and parent table alias columns.TODO: this case is kind of hard to test, but trying to come up with something.
float64
is larger type than decimal forcoalesce()
functionThis causes 937 failures in sqllogictests
@@server_uuid
system variableThis PR adds support for the
@@server_uuid
system variable.However, this just generates a random UUID on server start, and does not persist it to a file.
MySQL Docs:
https://dev.mysql.com/doc/refman/8.0/en/replication-options.html#sysvar_server_uuid
Fixes
@@server_uuid
generated bymysqlsh
. Dolt does not support that system variable. dolthub/dolt#7431type()
Although only the first argument is returned, coalesce still examines the types of all the arguments passed in, and uses the "largest" type.
MySQL round appends 4 places of precision to their division operators, but only on the very last division operation.
All inner divisions need to preserve as much precision as possible. To track this, we have a
divScale
variable in.We also have an
opScale
to track if an operation is the outermost operator, for other rounding/precision reasons.We were getting these values mixed up, leading to results with incorrect precision.
Our logic for preventing
DROP
s on a table if that table was referenced in aFOREIGN KEY
did not account for when the table was self referencing. This PR fixes that and closes the gap in our testing for this area.fixes Unable to drop table with self referential foreign key dolthub/dolt#7418
re: Allow ambiguous column names in
GroupBy
andHaving
clauses dolthub/go-mysql-server#2271Use expression ids to fix expression indexes most of the time. This makes it easier to resolve definitions once in planbuilder, rather than having to redo all that work a second time during
assignExecIndexes
. This should be more reliable for most queries and make it easier to make alias resolving refactors.Many expressions now implement
sql.IdExpression
and absorb unique expression ids. Trigger variables and stored procedure params still lack ids and fallback to string matching behavior.The biggest lingering issue relates to how dual tables, aliases, and subquery expressions interact. Dual tables have a schema with one column named with an empty string. Subquery expressions expect the +1 column offset from a dual table parent schema (if I'm reading correctly, it might depend on other context). On the other hand, that column can make it difficult to deduplicate projections and throw off execution indexing. There is one query that I haven't been able to get working that has a combination of dual table and alias issues that I think needs a heavier lift to manage correctly.
rj
subquery a second time in the second alias. But that alias replacement breaks some of theTestOrderByGroupBy
tests that also have alias issues.vitess
stats_auto_recalc
table optionThis fixes 1 sqllogictest
We have some extra keywords (they aren't listed as reserved or non-reserved in MySQL), to handle the special syntax.
These keywords are allowed as table and column names without backquotes.
UNIQUE
andPRIMARY KEY
to be specified on the same columnRelated to:
id serial primary key
SQL created by Drizzle in MySQL mode. Dolt can't execute. dolthub/dolt#7395Closed Issues
@@server_uuid
generated bymysqlsh
. Dolt does not support that system variable.@@dolt_transaction_commit = 1