summaryrefslogtreecommitdiff
path: root/sql/handler.h
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2005-04-07 12:16:41 +0300
committerunknown <marko@hundin.mysql.fi>2005-04-07 12:16:41 +0300
commitf7356d73910f3df3dedf99d2fafd6413cdb6d33d (patch)
tree7034173189c0c268893de96cb77f0e5983ac1a94 /sql/handler.h
parent0d17aea729e9f33071eee20fbc0b91fd002ca9bb (diff)
downloadmariadb-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.h2
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()