File: load_timezones_with_alter_algorithm_inplace.test

package info (click to toggle)
mariadb 1%3A10.11.14-0%2Bdeb12u2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 614,128 kB
  • sloc: ansic: 2,421,226; cpp: 1,765,048; asm: 381,336; perl: 62,256; java: 39,363; pascal: 38,841; sh: 38,242; sql: 19,830; yacc: 19,731; xml: 10,414; python: 10,125; ruby: 8,544; cs: 6,542; makefile: 6,155; ada: 1,879; lex: 1,207; javascript: 996; objc: 80; tcl: 73; awk: 46; php: 22
file content (40 lines) | stat: -rw-r--r-- 1,787 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--source include/not_embedded.inc

# MDEV-33044 Loading time zones does not work with alter_algorithm INPLACE

set global alter_algorithm=INPLACE;

# Because loading timezones alters the mysql tables,
# this test will leave mysql in a different state than when it started.
# Furthermore, checksums on the various mysql.timezone_x tables will fail. 

# Therefore we:
# 1. Make "backups" of the existing tables by renaming them
# 2. Make dummy clones of the tables we just backed up
# 3. Load timezones with alterations made to the dummy clone tables
# 4. Drop the newly made tables with changes made to them
# 5. Restore the backed up tables so the checksums will pass

RENAME TABLE mysql.time_zone TO mysql.time_zone_BACKUP;
RENAME TABLE mysql.time_zone_name TO mysql.time_zone_name_BACKUP;
RENAME TABLE mysql.time_zone_transition TO mysql.time_zone_transition_BACKUP;
RENAME TABLE mysql.time_zone_transition_type TO mysql.time_zone_transition_type_BACKUP;

CREATE TABLE mysql.time_zone LIKE mysql.time_zone_BACKUP;
CREATE TABLE mysql.time_zone_name LIKE mysql.time_zone_name_BACKUP;
CREATE TABLE mysql.time_zone_transition LIKE mysql.time_zone_transition_BACKUP;
CREATE TABLE mysql.time_zone_transition_type LIKE mysql.time_zone_transition_type_BACKUP;

--exec $MYSQL_TZINFO_TO_SQL std_data/zoneinfo | $MYSQL mysql

DROP TABLE mysql.time_zone;
DROP TABLE mysql.time_zone_name;
DROP TABLE mysql.time_zone_transition;
DROP TABLE mysql.time_zone_transition_type;

RENAME TABLE mysql.time_zone_BACKUP TO mysql.time_zone;
RENAME TABLE mysql.time_zone_name_BACKUP TO mysql.time_zone_name;
RENAME TABLE mysql.time_zone_transition_BACKUP TO mysql.time_zone_transition;
RENAME TABLE mysql.time_zone_transition_type_BACKUP TO mysql.time_zone_transition_type;

set global alter_algorithm=DEFAULT;