Crate mz_mysql_util

Source
Expand description

MySQL utility library.

Re-exports§

pub use schemas::MySqlTableSchema;
pub use schemas::QualifiedTableRef;
pub use schemas::SYSTEM_SCHEMAS;
pub use schemas::SchemaRequest;
pub use schemas::schema_info;
pub use privileges::validate_source_privileges;
pub use decoding::pack_mysql_row;

Modules§

aws_rds 🔒
decoding
desc 🔒
privileges
replication 🔒
schemas
tunnel 🔒

Structs§

Config
Configuration for MySQL connections.
MissingPrivilege
MySqlColumnDesc
MySqlConn
A MySQL connection with an optional SSH tunnel handle.
MySqlKeyDesc
MySqlTableDesc
ProtoMySqlColumnDesc
ProtoMySqlKeyDesc
ProtoMySqlTableDesc
TimeoutConfig
UnsupportedDataType

Enums§

MySqlError
TunnelConfig
Configures an optional tunnel for use when connecting to a MySQL database.

Constants§

DEFAULT_CONNECT_TIMEOUT
DEFAULT_SNAPSHOT_LOCK_WAIT_TIMEOUT
DEFAULT_SNAPSHOT_MAX_EXECUTION_TIME
DEFAULT_TCP_KEEPALIVE
ER_NO_SUCH_TABLE
ER_SOURCE_FATAL_ERROR_READING_BINLOG_CODE

Functions§

ensure_full_row_binlog_format
ensure_gtid_consistency
ensure_replication_commit_order
In case this is a MySQL replica, we ensure that the replication settings are such that the replica would commit all transactions in the order they were committed on the primary. We don’t really know that this is a replica, but if the settings indicate multi-threaded replication and the preserve-commit-order setting is not on, then it could be a replica with correctness issues. We used to check performance_schema.replication_connection_configuration to determine if this was in-fact a replica but that requires non-standard privileges. Before MySQL 8.0.27, single-threaded was default and preserve-commit-order was not, and after 8.0.27 multi-threaded is default and preserve-commit-order is default on. So both of those default scenarios are fine. Unfortunately on some versions of MySQL on RDS, the default parameters use multi-threading without the preserve-commit-order setting on.
query_sys_var
Query a MySQL System Variable
quote_identifier
Quotes MySQL identifiers. See MySQL quote_identifier()