Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.10
-
None
Description
After creating a table with a connection string, if ALTER TABLE is used, the connection string is lost. For instance:
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC tabname='lite' CONNECTION='Driver=SQLite3 ODBC Driver;Database=test.sqlite3;NoWCHAR=yes' CHARSET=utf8 DATA_CHARSET=utf8; |
|
SHOW CREATE TABLE t1; |
CREATE TABLE `t1` ( |
`ID` int(9) DEFAULT NULL, |
`nom` varchar(12) NOT NULL, |
`nais` datetime DEFAULT NULL, |
`rem` varchar(32) DEFAULT NULL |
) ENGINE=CONNECT DEFAULT CHARSET=utf8 CONNECTION='Driver=SQLite3 ODBC Driver;Database=test.sqlite3;NoWCHAR=yes' `TABLE_TYPE`='ODBC' `TABNAME`='lite' `DATA_CHARSET`='utf8' |
Now if I do:
ALTER TABLE t1 MODIFY COLUMN nom VARCHAR(13) NOT NULL; |
SHOW CREATE TABLE t1; |
CREATE TABLE `t1` ( |
`ID` int(9) DEFAULT NULL, |
`nom` varchar(13) NOT NULL, |
`nais` datetime DEFAULT NULL, |
`rem` varchar(32) DEFAULT NULL |
) ENGINE=CONNECT DEFAULT CHARSET=utf8 `TABLE_TYPE`='ODBC' `TABNAME`='lite' `DATA_CHARSET`='utf8'; |
This has not been reported before CONNECT was implemented because the only other engine using connection string was FEDERATED(X) that does not support ALTER TABLE.
Note that is is possible to keep, modify or add the connection string in ALTER TABLE by specifying it explicitly:
This works and the connection string is kept. However, this is just a temporary bypass.