Move handler specific options into handlerton flag check

BUG#13108


mysql-test/r/federated.result:
  added test results for federated alter table
mysql-test/t/federated.test:
  added test for federated alter table
sql/examples/ha_example.cc:
  supports table re-creation
sql/examples/ha_tina.cc:
  supports table re-creation
sql/ha_blackhole.cc:
  supports table re-creation
sql/ha_federated.cc:
  added flag for not supporting alter
sql/ha_heap.cc:
  supports table recreation
sql/ha_myisam.cc:
  supports table recreation
sql/ha_myisammrg.cc:
  supports table re-creation
sql/handler.cc:
  implemented flag check function
sql/handler.h:
  added additional handlerton flags
  created a function to test flags
  replace ha_supports_generate macro with call to flag check
sql/sql_delete.cc:
  replaced ha_supports_generate with handlerton flag check
sql/sql_table.cc:
  added check for handlerton check for alter support
This commit is contained in:
unknown 2005-09-30 16:26:48 -07:00
commit d553b66791
13 changed files with 111 additions and 18 deletions

View file

@ -1457,6 +1457,32 @@ federated.t1 repair status OK
REPAIR TABLE federated.t1 USE_FRM;
Table Op Msg_type Msg_text
federated.t1 repair status OK
DROP TABLE IF EXISTS federated.normal_table;
CREATE TABLE federated.normal_table (
`id` int(4) NOT NULL,
`name` varchar(10) default NULL
) DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS federated.alter_me;
CREATE TABLE federated.alter_me (
`id` int(4) NOT NULL,
`name` varchar(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE="FEDERATED" DEFAULT CHARSET=latin1
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/normal_table';
INSERT INTO federated.alter_me (id, name) VALUES (1, 'Monty');
INSERT INTO federated.alter_me (id, name) VALUES (2, 'David');
SELECT * FROM federated.alter_me;
id name
1 Monty
2 David
ALTER TABLE federated.alter_me MODIFY COLUMN id int(16) NOT NULL;
ERROR HY000: Table storage engine for 'alter_me' doesn't have this option
SELECT * FROM federated.alter_me;
id name
1 Monty
2 David
DROP TABLE federated.alter_me;
DROP TABLE federated.normal_table;
DROP TABLE IF EXISTS federated.t1;
DROP DATABASE IF EXISTS federated;
DROP TABLE IF EXISTS federated.t1;