diff options
author | unknown <marko@hundin.mysql.fi> | 2005-04-07 12:16:41 +0300 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2005-04-07 12:16:41 +0300 |
commit | f7356d73910f3df3dedf99d2fafd6413cdb6d33d (patch) | |
tree | 7034173189c0c268893de96cb77f0e5983ac1a94 /sql/handler.h | |
parent | 0d17aea729e9f33071eee20fbc0b91fd002ca9bb (diff) | |
download | mariadb-git-f7356d73910f3df3dedf99d2fafd6413cdb6d33d.tar.gz |
InnoDB: Prevent ALTER TABLE ... ENGINE=...
if there are foreign key constraints on the table. (Bug #5574)
sql/ha_innodb.cc:
Add method can_switch_engines()
sql/ha_innodb.h:
Add method can_switch_engines()
sql/handler.h:
Add method can_switch_engines()
sql/sql_table.cc:
Check handler::can_switch_engines() before switching storage engines
Diffstat (limited to 'sql/handler.h')
-rw-r--r-- | sql/handler.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/handler.h b/sql/handler.h index 50ce33b5067..4c31da6a492 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -450,6 +450,8 @@ public: virtual void append_create_info(String *packet) {} virtual char* get_foreign_key_create_info() { return(NULL);} /* gets foreign key create string from InnoDB */ + /* used in ALTER TABLE; 1 if changing storage engine is allowed */ + virtual bool can_switch_engines() { return 1; } /* used in REPLACE; is > 0 if table is referred by a FOREIGN KEY */ virtual uint referenced_by_foreign_key() { return 0;} virtual void init_table_handle_for_HANDLER() |