[MDEV-6085] ALTER TABLE looses the connection string Created: 2014-04-13  Updated: 2014-05-06  Resolved: 2014-05-06

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.10
Fix Version/s: 10.0.11

Type: Bug Priority: Major
Reporter: Olivier Bertrand Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: plugins


 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.



 Comments   
Comment by Olivier Bertrand [ 2014-04-14 ]

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.

Generated at Thu Feb 08 07:09:15 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.