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
Bumps mysql2 from 2.3.3 to 3.9.4.
traditional
auto-increment lock mode hold the lock for the duration of the insert iter.Fixes Support for
traditional
andconsecutive
behavior forinnodb_autoinc_lock_mode
dolthub/dolt#7634This is the dolt half of For AutoIncrement lock modes other than "interleaved", hold the lock for the duration of the insert iter. dolthub/go-mysql-server#2439
This adds support for
innodb_autoinc_lock_mode=0
("traditional"). When this system variable is set, the engine will guarantee that every insert statement generates consecutive IDs forAUTO INCREMENT
columns.This PR also allows the user to set
innodb_autoinc_lock_mode=1
("consecutive"), although the behavior is currently identical to "traditional". This is acceptable because both modes make the same guarantees (that each statement gets consecutive IDs), and the observed behavior is the same in almost all cases.(The "consecutive" contains an additional optimization: if there is a known upper bound on the number of IDs that must be generated for an insert, under "consecutive" mode the engine will just increment the counter by that upper bound and immediately release the lock. In places where not all of those IDs are actually used, the excess are wasted. This PR does not include that optimization. Thus, with this PR,
traditional
andconsecutive
behave the same.)go-mysql-server
I was wrong, this is very broken in dolt.
Could not find a quick fix, so skipping tests to unblock auto-bumps.
reopens: Auto Increment increments despite error dolthub/dolt#3157
We parse these statements but don't yet support them. So for now we return a helpful error.
auto_inc
with errorHard to tell which PR or combination or PRs fixed this, but this issue no longer reproduces in GMS or Dolt.
This PR just adds an explicit test case for it.
fixes Auto Increment increments despite error dolthub/dolt#3157
last_days()
mysql docs:
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_last-day
information_schema.tables
fixes Table comments are "ignored" dolthub/dolt#2389
to_days()
andfrom_days()
This PR implements the
TO_DAYS
andFROM_DAYS
MySQL functions.Initially, I attempted to use the existing logic from Add/Sub Date along with the 0 year, but there were overflow issues.
So, there's a skipped test for Intervals.
to_days
docs:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_to-days
from_days
docs:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_from-days
gtid_subtract()
functionAdds support for MySQL's
gtid_subtract()
built-in function:https://dev.mysql.com/doc/refman/8.0/en/gtid-functions.html#function_gtid-subtract
SHOW BINARY LOG STATUS
statementAdds support for handling MySQL's
SHOW BINARY LOG STATUS
statement.As with the other replication commands, we test the privilege checks in GMS and test the actual integration for data flowing through this statement in Dolt.
SHOW VARIABLES LIKE
should be case-insensitiveBug fix to make
SHOW VARIABLES LIKE '...'
match MySQL's behavior by matching patterns case-insensitively.Also includes changes to add the missing
binlog_format
system variable that some replication clients need to query, and initializes theserver_uuid
system variable.This PR allows using defined string for sub statement instead of slicing the original query. If this field is empty, then slice the original query to get the sub statement.
DECLARE
inBEGIN...END BLOCK
inTRIGGER
This PR allows us to use
DECLARE
statements inTRIGGERS
.The analyzer rule
applyTriggers
was altered to initializeProcedureReference
forTriggerBeginEndBlock
.The important part was ensuring that all relevant nodes (
TriggerBeingEndBlock
,BeginEndBlock
,ProcedureParam
) all had the sameProcedureReference
and to search in all the nodes.Additionally,
nil
guards are added to all receiver methods forProcedureReference
to prevent panics.It seems like events might have this issue, but there's a banaid fix for it. Not sure if I want to touch that code.
fixes: Crash on
BEFORE INSERT
trigger usingDECLARE
variable dolthub/dolt#7720Hi, I just wanted to fix a couple of minor grammatical errors in the README.md file.
This is the GMS side of Support for
traditional
andconsecutive
behavior forinnodb_autoinc_lock_mode
dolthub/dolt#7634This PR changes the engine to make it acquire a lock (provided by the storage layer) when
innodb_autoinc_lock_mode
is set to the "consecutive" or "traditional" values. More specifically, it calls a new function in theAutoIncrementSetter
interface which optionally acquires a lock and returns a callback for releasing the lock.The in-memory DB doesn't have multithreading support, so when just using GMS, this is a no-op. A followup PR in Dolt will update its implementation of
AutoIncrementSetter
to handle the locking.vitess
Once again, golang reminds me that a value type implementing an interface forces the pointer type to also implement the interface, and mixing the two messes up our runtime type reflection.
I changed all uses of the AliasedValues in InsertRows interface to be pointers so that we can interact with them consistently on the GMS side.
Needed to support the
gtid_subtract()
built-in function. Also exposes theParseMysql56GTIDSet
function so that we can parse GTIDSet strings from GMS.Related GMS PR: Feature:
gtid_subtract()
function dolthub/go-mysql-server#2455FLUSH TABLES
statementAdds parser support for the
FLUSH TABLES <tablename_list> [WITH READ LOCK]
statement.Also adds
SHOW MASTER STATUS
as an alias forSHOW BINARY LOG STATUS
for compatibility with clients that use the older syntax (e.g. Debezium).Related to Syntax Error Occurs When Using AS Clause with ON DUPLICATE KEY UPDATE dolthub/dolt#7638
This allows us to parse statements of the form:
INSERT INTO t VALUES (?, ?, ?) AS new ON DUPLICATE KEY v = new.v;
This PR adds optional
WITH CHECK OPTION
support forCREATE VIEW
This PR adds syntax support for
ALTER TABLE ... RENAME CONSTRAINT [FOREIGN KEY / CHECK]...
for foreign key constraints.Closed Issues
trim(trailing ',' from column)
syntax not supportedselect ... not in ...
returns wrong results for nullsdolt sql
and other commands should connect to running databasedolt sql
dolt conflicts resolve <table> --combine-ours
or--combine-theirs
:=
operator in SELECTBEFORE INSERT
trigger usingDECLARE
variabletraditional
andconsecutive
behavior forinnodb_autoinc_lock_mode