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

pull/72824/head
J. Nick Koston 2022-05-31 11:35:28 -10:00 committed by Paulus Schoutsen
parent c3acdcb2c8
commit de0c672cc2
1 changed files with 11 additions and 0 deletions

View File

@ -712,6 +712,17 @@ def _apply_update( # noqa: C901
elif new_version == 29:
# Recreate statistics_meta index to block duplicated 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:
_create_index(
session_maker, "statistics_meta", "ix_statistics_meta_statistic_id"