From 49e3bb028c003223b8c2deff6eb855ae10e8fa88 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Mon, 4 Feb 2013 14:42:56 +0400 Subject: [PATCH] Adding tests for ALTER TABLE modified: mysql-test/suite/connect/r/dbf.result mysql-test/suite/connect/t/dbf.test --- mysql-test/suite/connect/r/dbf.result | 114 ++++++++++++++++++++++++++ mysql-test/suite/connect/t/dbf.test | 38 +++++++++ 2 files changed, 152 insertions(+) diff --git a/mysql-test/suite/connect/r/dbf.result b/mysql-test/suite/connect/r/dbf.result index 85f6b3d78dd..02cf0727c0e 100644 --- a/mysql-test/suite/connect/r/dbf.result +++ b/mysql-test/suite/connect/r/dbf.result @@ -401,5 +401,119 @@ Dec 5 Flags 00 -------- -------- DROP TABLE IF EXISTS t1; +# +# Testing ALTER +# +CREATE TABLE t1 +( +a VARCHAR(10) +) ENGINE=CONNECT TABLE_TYPE=DBF FILE_NAME='t1.dbf'; +INSERT INTO t1 VALUES ('10'); +SELECT * FROM t1; +a +10 +CALL dbf_header('MYSQLD_DATADIR/test/t1.dbf'); +-------- -------- +FileSize 77 +DBF_Version 03 +NRecords 1 +FirstRecPos 66 +RecLength 11 +TableFlags 0000 +CodePageMark 00 +--- --- +FieldN 0 +Name a +Type C +Offset 0 +Length 10 +Dec 0 +Flags 00 +-------- -------- +ALTER TABLE t1 MODIFY a VARCHAR(10) NOT NULL; +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) NOT NULL +) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`=DBF `FILE_NAME`='t1.dbf' +SELECT * FROM t1; +a +10 +CALL dbf_header('MYSQLD_DATADIR/test/t1.dbf'); +-------- -------- +FileSize 77 +DBF_Version 03 +NRecords 1 +FirstRecPos 66 +RecLength 11 +TableFlags 0000 +CodePageMark 00 +--- --- +FieldN 0 +Name a +Type C +Offset 0 +Length 10 +Dec 0 +Flags 00 +-------- -------- +ALTER TABLE t1 MODIFY a INT(10) NOT NULL; +Warnings: +Warning 1366 Incorrect integer value: '' for column 'a' at row 1 +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(10) NOT NULL +) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`=DBF `FILE_NAME`='t1.dbf' +SELECT * FROM t1; +a +10 +CALL dbf_header('MYSQLD_DATADIR/test/t1.dbf'); +-------- -------- +FileSize 77 +DBF_Version 03 +NRecords 1 +FirstRecPos 66 +RecLength 11 +TableFlags 0000 +CodePageMark 00 +--- --- +FieldN 0 +Name a +Type C +Offset 0 +Length 10 +Dec 0 +Flags 00 +-------- -------- +ALTER TABLE t1 MODIFY a INT(8) NOT NULL; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(8) NOT NULL +) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`=DBF `FILE_NAME`='t1.dbf' +SELECT * FROM t1; +ERROR HY000: Got error 174 'DBF file t1.dbf is corrupted' from CONNECT +CALL dbf_header('MYSQLD_DATADIR/test/t1.dbf'); +-------- -------- +FileSize 77 +DBF_Version 03 +NRecords 1 +FirstRecPos 66 +RecLength 11 +TableFlags 0000 +CodePageMark 00 +--- --- +FieldN 0 +Name a +Type C +Offset 0 +Length 10 +Dec 0 +Flags 00 +-------- -------- +DROP TABLE IF EXISTS t1; DROP PROCEDURE test.dbf_field; DROP PROCEDURE test.dbf_header; diff --git a/mysql-test/suite/connect/t/dbf.test b/mysql-test/suite/connect/t/dbf.test index d359a54cb16..0507d6e5e9d 100644 --- a/mysql-test/suite/connect/t/dbf.test +++ b/mysql-test/suite/connect/t/dbf.test @@ -375,6 +375,44 @@ DROP TABLE IF EXISTS t1; # on /opt/mariadb-5.5/data/: Is a directory' from CONNECT #CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=DBF; +--echo # +--echo # Testing ALTER +--echo # +CREATE TABLE t1 +( + a VARCHAR(10) +) ENGINE=CONNECT TABLE_TYPE=DBF FILE_NAME='t1.dbf'; +INSERT INTO t1 VALUES ('10'); +SELECT * FROM t1; +--chmod 0777 $MYSQLD_DATADIR/test/t1.dbf +--vertical_results +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +eval CALL dbf_header('$MYSQLD_DATADIR/test/t1.dbf'); +--horizontal_results +ALTER TABLE t1 MODIFY a VARCHAR(10) NOT NULL; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +--vertical_results +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +eval CALL dbf_header('$MYSQLD_DATADIR/test/t1.dbf'); +--horizontal_results +ALTER TABLE t1 MODIFY a INT(10) NOT NULL; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +--vertical_results +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +eval CALL dbf_header('$MYSQLD_DATADIR/test/t1.dbf'); +--horizontal_results +ALTER TABLE t1 MODIFY a INT(8) NOT NULL; +SHOW CREATE TABLE t1; +--error ER_GET_ERRMSG +SELECT * FROM t1; +--vertical_results +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +eval CALL dbf_header('$MYSQLD_DATADIR/test/t1.dbf'); +--horizontal_results +DROP TABLE IF EXISTS t1; +--remove_file $MYSQLD_DATADIR/test/t1.dbf DROP PROCEDURE test.dbf_field; DROP PROCEDURE test.dbf_header;