2020-07-30 17:03:26 +00:00
#!/usr/bin/env bash
2022-06-15 09:53:53 +00:00
# Tags: no-replicated-database, no-parallel, no-ordinary-database
2021-09-12 12:35:27 +00:00
# Tag no-replicated-database: Unsupported type of ALTER query
2020-07-30 17:03:26 +00:00
CURDIR = $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd )
2020-12-28 11:46:53 +00:00
# shellcheck source=../shell_config.sh
. " $CURDIR " /../shell_config.sh
2020-07-30 17:03:26 +00:00
ALTER_OUT_STRUCTURE = 'command_type String, partition_id String, part_name String'
ATTACH_OUT_STRUCTURE = 'old_part_name String'
FREEZE_OUT_STRUCTURE = 'backup_name String, backup_path String , part_backup_path String'
# setup
${ CLICKHOUSE_CLIENT } --query "DROP TABLE IF EXISTS table_for_freeze;"
${ CLICKHOUSE_CLIENT } --query "CREATE TABLE table_for_freeze (key UInt64, value String) ENGINE = MergeTree() ORDER BY key PARTITION BY key % 10;"
${ CLICKHOUSE_CLIENT } --query "INSERT INTO table_for_freeze SELECT number, toString(number) from numbers(10);"
2021-03-16 13:36:05 +00:00
# also for old syntax
${ CLICKHOUSE_CLIENT } --query "DROP TABLE IF EXISTS table_for_freeze_old_syntax;"
2022-06-23 08:37:52 +00:00
${ CLICKHOUSE_CLIENT } --allow_deprecated_syntax_for_merge_tree= 1 --query "CREATE TABLE table_for_freeze_old_syntax (dt Date, value String) ENGINE = MergeTree(dt, (value), 8192);"
2021-03-16 13:36:05 +00:00
${ CLICKHOUSE_CLIENT } --query "INSERT INTO table_for_freeze_old_syntax SELECT toDate('2021-03-01'), toString(number) from numbers(10);"
2020-07-30 17:03:26 +00:00
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze FREEZE WITH NAME 'test_01417' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name FROM table"
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze FREEZE PARTITION '3' WITH NAME 'test_01417_single_part' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name FROM table"
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze DETACH PARTITION '3';"
${ CLICKHOUSE_CLIENT } --query "INSERT INTO table_for_freeze VALUES (3, '3');"
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze ATTACH PARTITION '3' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $ATTACH_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, old_part_name FROM table"
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze DETACH PARTITION '5';"
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze FREEZE PARTITION '7' WITH NAME 'test_01417_single_part_7', ATTACH PART '5_6_6_0' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE , $ATTACH_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name, old_part_name FROM table"
2021-03-16 13:36:05 +00:00
# Unfreeze partition
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze UNFREEZE PARTITION '7' WITH NAME 'test_01417_single_part_7' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name FROM table"
# Freeze partition with old syntax
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze_old_syntax FREEZE PARTITION '202103' WITH NAME 'test_01417_single_part_old_syntax' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name FROM table"
# Unfreeze partition with old syntax
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze_old_syntax UNFREEZE PARTITION '202103' WITH NAME 'test_01417_single_part_old_syntax' FORMAT TSVWithNames SETTINGS alter_partition_verbose_result = 1;" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name FROM table"
2022-06-08 12:09:59 +00:00
# Unfreeze the whole backup with SYSTEM query
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze FREEZE PARTITION '7' WITH NAME 'test_01417_single_part_7_system'"
${ CLICKHOUSE_CLIENT } --query "DROP TABLE table_for_freeze"
${ CLICKHOUSE_CLIENT } --query "ALTER TABLE table_for_freeze UNFREEZE PARTITION '7' WITH NAME 'test_01417_single_part_7_system'" 2>/dev/null
rc = $?
if [ $rc -eq 0 ] ; then
echo " ALTER query shouldn't unfreeze removed table. Code: $rc "
exit 1
fi
${ CLICKHOUSE_CLIENT } --query "SYSTEM UNFREEZE WITH NAME 'test_01417_single_part_7_system'" \
| ${ CLICKHOUSE_LOCAL } --structure " $ALTER_OUT_STRUCTURE , $FREEZE_OUT_STRUCTURE " \
--query "SELECT command_type, partition_id, part_name, backup_name FROM table"
2020-07-30 17:03:26 +00:00
# teardown
${ CLICKHOUSE_CLIENT } --query "DROP TABLE IF EXISTS table_for_freeze;"
2021-03-16 13:36:05 +00:00
${ CLICKHOUSE_CLIENT } --query "DROP TABLE IF EXISTS table_for_freeze_old_syntax;"