Details
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.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Note that is is possible to keep, modify or add the connection string in ALTER TABLE by specifying it explicitly:
ALTER TABLE t1 MODIFY COLUMN nom VARCHAR(13) NOT NULL, CONNECTION='Driver=SQLite3 ODBC Driver;Database=test.sqlite3;NoWCHAR=yes';This works and the connection string is kept. However, this is just a temporary bypass.