diff options
author | Monty <monty@mariadb.org> | 2018-02-19 11:23:20 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-02-19 11:23:20 +0200 |
commit | 2ba0785ae6b692feefe97c81aa06427724ce197b (patch) | |
tree | c2d3203c38442f167831b5d326ea09bcc9269089 /sql/handler.h | |
parent | 778f76a2c6898a45a6c89799ddaad6650ffd0a47 (diff) | |
download | mariadb-git-10.3-alter.tar.gz |
Move alter partition flags to alter_info->partition_flags10.3-alter
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
Diffstat (limited to 'sql/handler.h')
-rw-r--r-- | sql/handler.h | 72 |
1 files changed, 40 insertions, 32 deletions
diff --git a/sql/handler.h b/sql/handler.h index 55f0e2f3710..f95a7c1bc76 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -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) @@ -711,30 +686,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 @@ -2276,6 +2281,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 |