Ensure the statistics_meta table is using the dynamic row format (#72784)

This commit is contained in:
J. Nick Koston 2022-05-31 11:35:28 -10:00 committed by GitHub
parent a8da0eedd3
commit 856e1144c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -712,6 +712,17 @@ def _apply_update( # noqa: C901
elif new_version == 29: elif new_version == 29:
# Recreate statistics_meta index to block duplicated statistic_id # Recreate statistics_meta index to block duplicated statistic_id
_drop_index(session_maker, "statistics_meta", "ix_statistics_meta_statistic_id") _drop_index(session_maker, "statistics_meta", "ix_statistics_meta_statistic_id")
if engine.dialect.name == SupportedDialect.MYSQL:
# Ensure the row format is dynamic or the index
# unique will be too large
with session_scope(session=session_maker()) as session:
connection = session.connection()
# This is safe to run multiple times and fast since the table is small
connection.execute(
text(
"ALTER TABLE statistics_meta ENGINE=InnoDB, ROW_FORMAT=DYNAMIC"
)
)
try: try:
_create_index( _create_index(
session_maker, "statistics_meta", "ix_statistics_meta_statistic_id" session_maker, "statistics_meta", "ix_statistics_meta_statistic_id"