Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport-12.0: Take MySQL Column Type Into Account in VStreamer #9354

Closed
wants to merge 135 commits into from

Conversation

mattlord
Copy link
Contributor

Description

This is a backport of #9331. Please see details there.

Related Issue(s)

Checklist

  • Should this PR be backported?
  • Tests were added or are not required
  • Documentation was added or is not required

frouioui and others added 30 commits October 5, 2021 12:33
Signed-off-by: Florent Poinsard <[email protected]>
Signed-off-by: Florent Poinsard <[email protected]>
Signed-off-by: Harshit Gangal <[email protected]>
for inserts, selects of too much data would still report ERTooManyUserConnections

Signed-off-by: Jacques Grove <[email protected]>
[12.0] grpc streamexecute to set a target if tablet type is provided
If the tablet is not healthy then the TabletHealth.Stats
variable is nil. Let's check for that and instead show a replication
lag value of -1 in that case to reflect the state.

Let's also add a fairly aggressive timeout for the HTTP calls
to get the throttler status so that one misbehaving tablet (call)
doesn't cause the entire command to timeout.

Signed-off-by: Matt Lord <[email protected]>
[Backport 12.0] Handle unhealthy tablets more safely
Signed-off-by: Harshit Gangal <[email protected]>
Proper handling of CHAR columns with binary collations

Signed-off-by: Matt Lord <[email protected]>
Backport [#8730 to 12.0]: Proper handling of CHAR columns with binary collations
[12.0] Show query to honour shard targeting
[12.0] Gen4: add support for distinct on pullout subquery plan
Signed-off-by: deepthi <[email protected]>
Inclusive Naming: fix aya example and orc_test.sh
Signed-off-by: Shlomi Noach <[email protected]>
When adding this command I leveraged the SHOW SLAVE STATUS
command against the database instances because that was the
lowest common denominator across our supported databases
-- MariaDB did not have the replication status related
performance_schema tables.

BUT, what I didn't realize at the time was that MariaDB has
added columns to the SHOW SLAVE/REPLICA STATUS output and
some of these new columns were injected into the middle of
the schema rather than appended. This means that in order
to support MariaDB with this command we need to reference
the column values by name rather than by index. See:
  - https://dev.mysql.com/doc/refman/en/replication-administration-status.html
  - https://mariadb.com/kb/en/show-replica-status/

Note: once all supported databases support the SHOW REPLICA
STATUS query then we can make the inclusive naming changes.

Signed-off-by: Matt Lord <[email protected]>
Add planner-version flag to vtexplain

Signed-off-by: Matt Lord <[email protected]>
[vtctl] command deprecations

Signed-off-by: Andrew Mason <[email protected]>
[Backport 12.0]: Add planner-version flag to vtexplain
stopVStream is called from unsubscribe with the mm.mu lock, so this matches that behavior

Signed-off-by: Derek Perkins <[email protected]>
this is purely cosmetic

Signed-off-by: Derek Perkins <[email protected]>
systay and others added 14 commits November 16, 2021 18:08
[v12.0] Remove keyspace from query before sending it on
Backport 9211: Fix local change that was committed erroneously
Rename master to primary/source in web interface of vtorc - 12.0
[backport] Fix boolean parameter order in DropSources call for v2 flows
restore 'vtctl VExec' command (backport v12)
Signed-off-by: Florent Poinsard <[email protected]>
Signed-off-by: Harshit Gangal <[email protected]>
Signed-off-by: Harshit Gangal <[email protected]>
[12.0] Fix for show commands in prepare statement
Use decoded hex string when calculating the keyspace ID

Signed-off-by: Matt Lord <[email protected]>
Backport12.0: Use decoded hex string when calculating the keyspace ID
This is required when we need to match MySQL behavior for data
that requires column type information as well. For example, the
binlog event metadata makes no distinction between events for a
BINARY(4) column and events for a CHAR(4) column with a binary
collation like utf8mb4_bin. So we need to know the underlying
MySQL column type in order to handle them disctinctly -- MySQL
pads (fixed length) binary columns on the right side with null
bytes, but it does NOT do that for (fixed lengthed) CHARo
columns, regardless of the collation.

Signed-off-by: Matt Lord <[email protected]>
And use ToLower when looking for BINARY types to be safe.

Signed-off-by: Matt Lord <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

VReplication discrepancy between copy vs catchup phases for binary columns