diff options
author | Mattias Jonsson <mattias.jonsson@sun.com> | 2008-10-05 00:40:30 +0200 |
---|---|---|
committer | Mattias Jonsson <mattias.jonsson@sun.com> | 2008-10-05 00:40:30 +0200 |
commit | 65811a336dbde9d09b6ed0b470fa37bd488a7a74 (patch) | |
tree | 58fe630451cffab8aa988a08d9f7c6764fdc0f6a /sql/handler.h | |
parent | 1e26e74c2a7192e4b8c94210b1e9829f7e53b2f1 (diff) | |
download | mariadb-git-65811a336dbde9d09b6ed0b470fa37bd488a7a74.tar.gz |
Bug#37453: Dropping/creating index on partitioned table with
InnoDB Plugin locks table
The fast/on-line add/drop index handler calls was not implemented
whithin the partitioning.
This implements it in the partitioning handler.
Since this is only used by the not included InnoDB plugin, there
is no test case. (Have tested it manually with the plugin, and
it does not allow unique indexes not including partitioning
function, or removal of pk, which in innodb generates a new pk,
which is not in the partitioning function.)
NOTE: This introduces a new handler method, and because of that
changes the storage engine api. (One cannot use a handlerton to
see the capabilities of a table's handler if it is partitioned.
So I added a wrapper function in the handler that defaults to
the handlerton function, which the partitioning handler overrides.
sql/ha_partition.cc:
Bug#37453: Dropping/creating index on partitioned table with
InnoDB Plugin locks table
Added support for fast/on-line add/drop index.
Implemented alter_table_flags as bit-or of the partitioned
hton and the first partitions alter_table_flags.
It is only to forward the calls for the other functions:
check_if_incompatible_data
add_index
prepare_drop_index
final_drop_index
to all parts handler
sql/ha_partition.h:
Bug#37453: Dropping/creating index on partitioned table with
InnoDB Plugin locks table
Added support for fast/on-line add/drop index.
sql/handler.h:
Bug#37453: Dropping/creating index on partitioned table with
InnoDB Plugin locks table
Added the function on handler level, defaulting to use
the handlerton function, but a handler can override it.
Needed for partitioned tables.
NOTE: Change of storage engine api.
sql/sql_partition.cc:
Bug#37453: Dropping/creating index on partitioned table with
InnoDB Plugin locks table
Using the new handler function, instead of the handlerton
function. This works better with the partitioning handler.
sql/sql_table.cc:
Bug#37453: Dropping/creating index on partitioned table with
InnoDB Plugin locks table
Using the new handler function, instead of the handlerton
function. This works better with the partitioning handler.
Also using new process info for 'manage keys' (kind of fix
for bug-37550).
Diffstat (limited to 'sql/handler.h')
-rw-r--r-- | sql/handler.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/handler.h b/sql/handler.h index df6157f80b4..bea2952f4c1 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -1724,6 +1724,12 @@ public: but we don't have a primary key */ virtual void use_hidden_primary_key(); + virtual uint alter_table_flags(uint flags) + { + if (ht->alter_table_flags) + return ht->alter_table_flags(flags); + return 0; + } protected: /* Service methods for use by storage engines. */ |