Commit 4ea036f4 authored by Timothy Smith's avatar Timothy Smith
Browse files

Cherry-pick fix for Bug#35220 from innodb-5.0-ss2475 snapshot.

Bug#35220: ALTER TABLE too picky on reserved word "foreign"

In ALTER TABLE, change the internal parser to search for
``FOREIGN[[:space:]]'' instead of only ``FOREIGN'' when parsing
ALTER TABLE ... DROP FOREIGN KEY ...; otherwise it could be mistaken
with ALTER TABLE ... DROP foreign_col;

(This fix is already present in MySQL 5.1 and higher.)
parent 021d7d72
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3554,7 +3554,7 @@ dict_foreign_parse_drop_constraints(

	ptr = dict_accept(ptr, "FOREIGN", &success);
	
	if (!success) {
	if (!success || !ib_isspace(*ptr)) {

	        goto loop;
	}
+1 −0
Original line number Diff line number Diff line
SET storage_engine=InnoDB;
+16 −0
Original line number Diff line number Diff line
#
# Bug#35220 ALTER TABLE too picky on reserved word "foreign"
# http://bugs.mysql.com/35220
#

-- source include/have_innodb.inc

SET storage_engine=InnoDB;

# we care only that the following SQL commands do not produce errors
-- disable_query_log
-- disable_result_log

CREATE TABLE bug35220 (foreign_col INT, dummy_cant_delete_all_columns INT);
ALTER TABLE bug35220 DROP foreign_col;
DROP TABLE bug35220;