1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Move alter partition flags to alter_info->partition_flags

This is done to get more free flag bits for alter_info->flags

Renamed all ALTER PARTITION defines to start with ALTER_PARTITION_
Renamed ALTER_PARTITION to ALTER_PARTITION_INFO
Renamed ALTER_TABLE_REORG to ALTER_PARTITION_TABLE_REORG

Other things:
- Shifted some ALTER_xxx defines to get empty bits at end
This commit is contained in:
Monty
2018-02-19 11:23:20 +02:00
parent 2dbeebdb16
commit ab1941266c
14 changed files with 186 additions and 164 deletions

View File

@ -597,35 +597,10 @@ typedef ulonglong alter_table_operations;
#define ALTER_KEYS_ONOFF (1ULL << 9)
// Set for FORCE, ENGINE(same engine), by mysql_recreate_table()
#define ALTER_RECREATE (1ULL << 10)
// Set for ADD PARTITION
#define ALTER_ADD_PARTITION (1ULL << 11)
// Set for DROP PARTITION
#define ALTER_DROP_PARTITION (1ULL << 12)
// Set for COALESCE PARTITION
#define ALTER_COALESCE_PARTITION (1ULL << 13)
// Set for REORGANIZE PARTITION ... INTO
#define ALTER_REORGANIZE_PARTITION (1ULL << 14)
// Set for partition_options
#define ALTER_PARTITION (1ULL << 15)
// Set for LOAD INDEX INTO CACHE ... PARTITION
// Set for CACHE INDEX ... PARTITION
#define ALTER_ADMIN_PARTITION (1ULL << 16)
// Set for REORGANIZE PARTITION
#define ALTER_TABLE_REORG (1ULL << 17)
// Set for REBUILD PARTITION
#define ALTER_REBUILD_PARTITION (1ULL << 18)
// Set for partitioning operations specifying ALL keyword
#define ALTER_ALL_PARTITION (1ULL << 19)
// Set for REMOVE PARTITIONING
#define ALTER_REMOVE_PARTITIONING (1ULL << 20)
// Set for ADD FOREIGN KEY
#define ALTER_ADD_FOREIGN_KEY (1ULL << 21)
// Set for DROP FOREIGN KEY
#define ALTER_DROP_FOREIGN_KEY (1ULL << 22)
// Set for EXCHANGE PARITION
#define ALTER_EXCHANGE_PARTITION (1ULL << 23)
// Set by Sql_cmd_alter_table_truncate_partition::execute()
#define ALTER_TRUNCATE_PARTITION (1ULL << 24)
// Set for ADD [COLUMN] FIRST | AFTER
#define ALTER_COLUMN_ORDER (1ULL << 25)
#define ALTER_ADD_CHECK_CONSTRAINT (1ULL << 27)
@ -713,30 +688,60 @@ typedef ulonglong alter_table_operations;
#define ALTER_COLUMN_NOT_NULLABLE (1ULL << 54)
// Change column generation expression
#define ALTER_VIRTUAL_GCOL_EXPR (1ULL << 56)
#define ALTER_STORED_GCOL_EXPR (1ULL << 57)
#define ALTER_VIRTUAL_GCOL_EXPR (1ULL << 55)
#define ALTER_STORED_GCOL_EXPR (1ULL << 56)
// column's engine options changed, something in field->option_struct
#define ALTER_COLUMN_OPTION (1ULL << 59)
#define ALTER_COLUMN_OPTION (1ULL << 57)
// MySQL alias for the same thing:
#define ALTER_COLUMN_STORAGE_TYPE (1ULL << 60)
#define ALTER_COLUMN_STORAGE_TYPE (1ULL << 58)
// Change the column format of column
#define ALTER_COLUMN_COLUMN_FORMAT (1ULL << 61)
#define ALTER_COLUMN_COLUMN_FORMAT (1ULL << 59)
/**
Changes in generated columns that affect storage,
for example, when a vcol type or expression changes
and this vcol is indexed or used in a partitioning expression
*/
#define ALTER_COLUMN_VCOL (1ULL << 62)
#define ALTER_COLUMN_VCOL (1ULL << 60)
/**
ALTER TABLE for a partitioned table. The engine needs to commit
online alter of all partitions atomically (using group_commit_ctx)
*/
#define ALTER_PARTITIONED (1ULL << 63)
#define ALTER_PARTITIONED (1ULL << 61)
/*
Flags set in partition_flags when altering partitions
*/
// Set for ADD PARTITION
#define ALTER_PARTITION_ADD (1ULL << 1)
// Set for DROP PARTITION
#define ALTER_PARTITION_DROP (1ULL << 2)
// Set for COALESCE PARTITION
#define ALTER_PARTITION_COALESCE (1ULL << 3)
// Set for REORGANIZE PARTITION ... INTO
#define ALTER_PARTITION_REORGANIZE (1ULL << 4)
// Set for partition_options
#define ALTER_PARTITION_INFO (1ULL << 5)
// Set for LOAD INDEX INTO CACHE ... PARTITION
// Set for CACHE INDEX ... PARTITION
#define ALTER_PARTITION_ADMIN (1ULL << 6)
// Set for REBUILD PARTITION
#define ALTER_PARTITION_REBUILD (1ULL << 7)
// Set for partitioning operations specifying ALL keyword
#define ALTER_PARTITION_ALL (1ULL << 8)
// Set for REMOVE PARTITIONING
#define ALTER_PARTITION_REMOVE (1ULL << 9)
// Set for EXCHANGE PARITION
#define ALTER_PARTITION_EXCHANGE (1ULL << 10)
// Set by Sql_cmd_alter_table_truncate_partition::execute()
#define ALTER_PARTITION_TRUNCATE (1ULL << 11)
// Set for REORGANIZE PARTITION
#define ALTER_PARTITION_TABLE_REORG (1ULL << 12)
/*
This is master database for most of system tables. However there
@ -2285,6 +2290,9 @@ public:
*/
alter_table_operations handler_flags;
/* Alter operations involving parititons are strored here */
ulong partition_flags;
/**
Partition_info taking into account the partition changes to be performed.
Contains all partitions which are present in the old version of the table