Skip to content

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

Closed
mattlord wants to merge 135 commits intomainfrom
Backport_9331_12.0
Closed

Backport-12.0: Take MySQL Column Type Into Account in VStreamer#9354
mattlord wants to merge 135 commits intomainfrom
Backport_9331_12.0

Conversation

@mattlord
Copy link
Copy Markdown
Member

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 <florent.poinsard@outlook.fr>
Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
for inserts, selects of too much data would still report ERTooManyUserConnections

Signed-off-by: Jacques Grove <aquarapid@gmail.com>
Signed-off-by: deepthi <deepthi@planetscale.com>
[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 <mattalord@gmail.com>
[Backport 12.0] Handle unhealthy tablets more safely
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Proper handling of CHAR columns with binary collations

Signed-off-by: Matt Lord <mattalord@gmail.com>
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 <deepthi@planetscale.com>
Inclusive Naming: fix aya example and orc_test.sh
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
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 <mattalord@gmail.com>
Add planner-version flag to vtexplain

Signed-off-by: Matt Lord <mattalord@gmail.com>
[vtctl] command deprecations

Signed-off-by: Andrew Mason <amason@slack-corp.com>
[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 <derek@nozzle.io>
this is purely cosmetic

Signed-off-by: Derek Perkins <derek@nozzle.io>
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
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
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 <florent.poinsard@outlook.fr>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
Signed-off-by: Harshit Gangal <harshit@planetscale.com>
[12.0] Fix for show commands in prepare statement
Use decoded hex string when calculating the keyspace ID

Signed-off-by: Matt Lord <mattalord@gmail.com>
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 <mattalord@gmail.com>
And use ToLower when looking for BINARY types to be safe.

Signed-off-by: Matt Lord <mattalord@gmail.com>
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