69 changed files with 3382 additions and 1755 deletions
-
2mysql-test/mysql-test-run.pl
-
13storage/connect/CMakeLists.txt
-
6storage/connect/colblk.cpp
-
18storage/connect/connect.cc
-
2storage/connect/filamtxt.h
-
2storage/connect/filamvct.cpp
-
3storage/connect/filamzip.h
-
255storage/connect/ha_connect.cc
-
2storage/connect/ha_connect.h
-
43storage/connect/libdoc.cpp
-
56storage/connect/myconn.cpp
-
5storage/connect/myconn.h
-
15storage/connect/mysql-test/connect/my.cnf
-
4storage/connect/mysql-test/connect/r/bin.result
-
10storage/connect/mysql-test/connect/r/csv.result
-
8storage/connect/mysql-test/connect/r/dbf.result
-
8storage/connect/mysql-test/connect/r/fix.result
-
8storage/connect/mysql-test/connect/r/ini.result
-
4storage/connect/mysql-test/connect/r/mysql.result
-
42storage/connect/mysql-test/connect/r/mysql_discovery.result
-
62storage/connect/mysql-test/connect/r/mysql_exec.result
-
218storage/connect/mysql-test/connect/r/mysql_new.result
-
12storage/connect/mysql-test/connect/r/odbc_sqlite3.result
-
2storage/connect/mysql-test/connect/r/odbc_sqlite3_grant.result
-
11storage/connect/mysql-test/connect/r/odbc_xls.result
-
8storage/connect/mysql-test/connect/r/vec.result
-
2storage/connect/mysql-test/connect/r/xml.result
-
154storage/connect/mysql-test/connect/t/bin.test
-
370storage/connect/mysql-test/connect/t/csv.test
-
1018storage/connect/mysql-test/connect/t/dbf.test
-
216storage/connect/mysql-test/connect/t/fix.test
-
312storage/connect/mysql-test/connect/t/ini.test
-
27storage/connect/mysql-test/connect/t/myconn.inc
-
9storage/connect/mysql-test/connect/t/myconn_cleanup.inc
-
33storage/connect/mysql-test/connect/t/mysql_discovery.test
-
45storage/connect/mysql-test/connect/t/mysql_exec.test
-
325storage/connect/mysql-test/connect/t/mysql_new.test
-
10storage/connect/mysql-test/connect/t/odbc_sqlite3.test
-
13storage/connect/mysql-test/connect/t/odbc_xls.test
-
160storage/connect/mysql-test/connect/t/vec.test
-
34storage/connect/myutil.cpp
-
9storage/connect/myutil.h
-
2storage/connect/odbccat.h
-
170storage/connect/odbconn.cpp
-
7storage/connect/odbconn.h
-
12storage/connect/plgdbsem.h
-
2storage/connect/plgdbutl.cpp
-
2storage/connect/tabdos.cpp
-
1storage/connect/table.cpp
-
404storage/connect/tabmysql.cpp
-
30storage/connect/tabmysql.h
-
1storage/connect/taboccur.cpp
-
2storage/connect/taboccur.h
-
324storage/connect/tabodbc.cpp
-
31storage/connect/tabodbc.h
-
2storage/connect/tabpivot.cpp
-
9storage/connect/tabtbl.cpp
-
1storage/connect/tabutil.cpp
-
2storage/connect/tabutil.h
-
2storage/connect/tabvct.cpp
-
19storage/connect/tabwmi.cpp
-
1storage/connect/tabxcl.cpp
-
2storage/connect/tabxcl.h
-
123storage/connect/valblk.cpp
-
42storage/connect/valblk.h
-
259storage/connect/value.cpp
-
87storage/connect/value.h
-
10storage/connect/xindex.cpp
-
34storage/connect/xtable.h
@ -0,0 +1,15 @@ |
|||
# Use default setting for mysqld processes |
|||
!include include/default_mysqld.cnf |
|||
!include include/default_client.cnf |
|||
|
|||
[mysqld.1] |
|||
#log-bin= master-bin |
|||
|
|||
[mysqld.2] |
|||
|
|||
[ENV] |
|||
MASTER_MYPORT= @mysqld.1.port |
|||
MASTER_MYSOCK= @mysqld.1.socket |
|||
|
|||
SLAVE_MYPORT= @mysqld.2.port |
|||
SLAVE_MYSOCK= @mysqld.2.socket |
|||
@ -0,0 +1,42 @@ |
|||
CREATE DATABASE connect; |
|||
CREATE DATABASE connect; |
|||
CREATE TABLE t1 ( |
|||
`id` int(20) primary key, |
|||
`group` int NOT NULL default 1, |
|||
`a\\b` int NOT NULL default 2, |
|||
`a\\` int unsigned, |
|||
`name` varchar(32) default 'name') |
|||
DEFAULT CHARSET=latin1; |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`id` int(20) NOT NULL, |
|||
`group` int(11) NOT NULL, |
|||
`a\\b` int(11) NOT NULL, |
|||
`a\\` int(10) DEFAULT NULL, |
|||
`name` varchar(32) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1' `TABLE_TYPE`='MYSQL' |
|||
INSERT INTO t1 (id, name) VALUES (1, 'foo'); |
|||
Warnings: |
|||
Warning 1364 Field 'group' doesn't have a default value |
|||
Warning 1364 Field 'a\\b' doesn't have a default value |
|||
INSERT INTO t1 (id, name) VALUES (2, 'fee'); |
|||
Warnings: |
|||
Warning 1364 Field 'group' doesn't have a default value |
|||
Warning 1364 Field 'a\\b' doesn't have a default value |
|||
SELECT * FROM t1; |
|||
id group a\\b a\\ name |
|||
1 1 2 NULL foo |
|||
2 1 2 NULL fee |
|||
DROP TABLE t1; |
|||
SELECT * FROM t1; |
|||
id group a\\b a\\ name |
|||
1 1 2 NULL foo |
|||
2 1 2 NULL fee |
|||
DROP TABLE t1; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
@ -0,0 +1,62 @@ |
|||
CREATE DATABASE connect; |
|||
CREATE DATABASE connect; |
|||
# |
|||
# Checking Sending Commands |
|||
# |
|||
CREATE TABLE t1 ( |
|||
command VARCHAR(128) NOT NULL, |
|||
warnings INT(4) NOT NULL FLAG=3, |
|||
number INT(5) NOT NULL FLAG=1, |
|||
message VARCHAR(255) FLAG=2) |
|||
ENGINE=CONNECT TABLE_TYPE=MYSQL CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test' OPTION_LIST='Execsrc=1,maxerr=2'; |
|||
SELECT * FROM t1 WHERE command IN ('Warning','Note', |
|||
'drop table if exists t1', |
|||
'create table t1 (id int key auto_increment, msg varchar(32) not null)', |
|||
"insert into t1(msg) values('One'),(NULL),('Three')", |
|||
"insert into t1 values(2,'Deux') on duplicate key update msg = 'Two'", |
|||
"insert into t1(message) values('Four'),('Five'),('Six')", |
|||
'insert into t1(id) values(NULL)', |
|||
"update t1 set msg = 'Four' where id = 4", |
|||
'select * from t1'); |
|||
command warnings number message |
|||
drop table if exists t1 1 0 Affected rows |
|||
Note 0 1051 Unknown table 'test.t1' |
|||
create table t1 (id int key auto_increment, msg varchar(32) not null) 0 0 Affected rows |
|||
insert into t1(msg) values('One'),(NULL),('Three') 1 3 Affected rows |
|||
Warning 0 1048 Column 'msg' cannot be null |
|||
insert into t1 values(2,'Deux') on duplicate key update msg = 'Two' 0 2 Affected rows |
|||
insert into t1(message) values('Four'),('Five'),('Six') 0 1054 Remote: Unknown column 'message' in 'field list' |
|||
insert into t1(id) values(NULL) 1 1 Affected rows |
|||
Warning 0 1364 Field 'msg' doesn't have a default value |
|||
update t1 set msg = 'Four' where id = 4 0 1 Affected rows |
|||
select * from t1 0 2 Result set columns |
|||
# |
|||
# Checking Using Procedure |
|||
# |
|||
DROP PROCEDURE IF EXISTS p1; |
|||
Warnings: |
|||
Note 1305 PROCEDURE test.p1 does not exist |
|||
CREATE PROCEDURE p1(cmd varchar(512)) |
|||
READS SQL DATA |
|||
SELECT * FROM t1 WHERE command IN ('Warning','Note',cmd); |
|||
CALL p1('insert into t1(id) values(NULL)'); |
|||
command warnings number message |
|||
insert into t1(id) values(NULL) 1 1 Affected rows |
|||
Warning 0 1364 Field 'msg' doesn't have a default value |
|||
CALL p1('update t1 set msg = "Five" where id = 5'); |
|||
command warnings number message |
|||
update t1 set msg = "Five" where id = 5 0 1 Affected rows |
|||
DROP PROCEDURE p1; |
|||
DROP TABLE t1; |
|||
SELECT * FROM t1; |
|||
id msg |
|||
1 One |
|||
2 Two |
|||
3 Three |
|||
4 Four |
|||
5 Five |
|||
DROP TABLE t1; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
@ -0,0 +1,218 @@ |
|||
CREATE DATABASE connect; |
|||
CREATE DATABASE connect; |
|||
CREATE TABLE t1 (a int, b char(10)); |
|||
INSERT INTO t1 VALUES (NULL,NULL),(0,'test00'),(1,'test01'),(2,'test02'),(3,'test03'); |
|||
SELECT * FROM t1; |
|||
a b |
|||
NULL NULL |
|||
0 test00 |
|||
1 test01 |
|||
2 test02 |
|||
3 test03 |
|||
# |
|||
# Testing errors |
|||
# |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://unknown@127.0.0.1:SLAVE_PORT/test/t1'; |
|||
ERROR HY000: (1045) Access denied for user 'unknown'@'localhost' (using password: NO) |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/unknown/t1'; |
|||
ERROR HY000: (1049) Unknown database 'unknown' |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=SLAVE_PORT' DBNAME='unknown' TABNAME='t1'; |
|||
ERROR HY000: (1049) Unknown database 'unknown' |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/unknown'; |
|||
ERROR HY000: (1146) Table 'test.unknown' doesn't exist [SHOW FULL COLUMNS FROM unknown FROM test] |
|||
SHOW CREATE TABLE t1; |
|||
ERROR 42S02: Table 'test.t1' doesn't exist |
|||
CREATE TABLE t1 (x int, y char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`x` int(11) DEFAULT NULL, |
|||
`y` char(10) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1' `TABLE_TYPE`=MYSQL |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Got error 174 '(1054) Unknown column 'x' in 'field list' [SELECT `x`, `y` FROM `t1`]' from CONNECT |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1'; |
|||
ALTER TABLE t1 RENAME t1backup; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Got error 174 '(1146) Table 'test.t1' doesn't exist [SELECT `a`, `b` FROM `t1`]' from CONNECT |
|||
ALTER TABLE t1backup RENAME t1; |
|||
DROP TABLE t1; |
|||
# |
|||
# Testing SELECT, etc. |
|||
# |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` int(11) DEFAULT NULL, |
|||
`b` char(10) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1' `TABLE_TYPE`='MYSQL' |
|||
SELECT * FROM t1; |
|||
a b |
|||
NULL NULL |
|||
0 test00 |
|||
1 test01 |
|||
2 test02 |
|||
3 test03 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=SLAVE_PORT'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` int(11) DEFAULT NULL, |
|||
`b` char(10) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`=MYSQL `TABNAME`='t1' `OPTION_LIST`='host=127.0.0.1,user=root,port=SLAVE_PORT' |
|||
SELECT * FROM t1; |
|||
a b |
|||
NULL NULL |
|||
0 test00 |
|||
1 test01 |
|||
2 test02 |
|||
3 test03 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL, b CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=SLAVE_PORT'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` int(11) NOT NULL, |
|||
`b` char(10) NOT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`=MYSQL `OPTION_LIST`='host=127.0.0.1,user=root,port=SLAVE_PORT' |
|||
SELECT * FROM t1; |
|||
a b |
|||
0 |
|||
0 test00 |
|||
1 test01 |
|||
2 test02 |
|||
3 test03 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a char(10), b int) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` char(10) DEFAULT NULL, |
|||
`b` int(11) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1' `TABLE_TYPE`=MYSQL |
|||
SELECT * FROM t1; |
|||
a b |
|||
NULL NULL |
|||
0 0 |
|||
1 0 |
|||
2 0 |
|||
3 0 |
|||
DROP TABLE t1; |
|||
DROP TABLE t1; |
|||
# |
|||
# Testing numeric data types |
|||
# |
|||
CREATE TABLE t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float, g double, h decimal(20,5)); |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` tinyint(4) DEFAULT NULL, |
|||
`b` smallint(6) DEFAULT NULL, |
|||
`c` mediumint(9) DEFAULT NULL, |
|||
`d` int(11) DEFAULT NULL, |
|||
`e` bigint(20) DEFAULT NULL, |
|||
`f` float DEFAULT NULL, |
|||
`g` double DEFAULT NULL, |
|||
`h` decimal(20,5) DEFAULT NULL |
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
|||
INSERT INTO t1 VALUES(100,3333,41235,1234567890,235000000000,3.14159265,3.14159265,3141.59265); |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=SLAVE_PORT'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` tinyint(4) DEFAULT NULL, |
|||
`b` smallint(6) DEFAULT NULL, |
|||
`c` int(9) DEFAULT NULL, |
|||
`d` int(11) DEFAULT NULL, |
|||
`e` bigint(20) DEFAULT NULL, |
|||
`f` double DEFAULT NULL, |
|||
`g` double DEFAULT NULL, |
|||
`h` double(20,5) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='MYSQL' `OPTION_LIST`='host=127.0.0.1,user=root,port=SLAVE_PORT' |
|||
SELECT * FROM t1; |
|||
a b c d e f g h |
|||
100 3333 41235 1234567890 235000000000 3.14159 3.14159265 3141.59265 |
|||
DROP TABLE t1; |
|||
DROP TABLE t1; |
|||
# |
|||
# Testing character data types |
|||
# |
|||
CREATE TABLE t1 (a char(12), b varchar(12)); |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` char(12) DEFAULT NULL, |
|||
`b` varchar(12) DEFAULT NULL |
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
|||
INSERT INTO t1 VALUES('Welcome','Hello, World'); |
|||
SELECT * FROM t1; |
|||
a b |
|||
Welcome Hello, World |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` char(12) DEFAULT NULL, |
|||
`b` varchar(12) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT' `TABLE_TYPE`='MYSQL' |
|||
SELECT * FROM t1; |
|||
a b |
|||
Welcome Hello, World |
|||
DROP TABLE t1; |
|||
DROP TABLE t1; |
|||
# |
|||
# Testing temporal data types |
|||
# |
|||
CREATE TABLE t1 (a date, b datetime, c time, d timestamp, e year); |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` date DEFAULT NULL, |
|||
`b` datetime DEFAULT NULL, |
|||
`c` time DEFAULT NULL, |
|||
`d` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, |
|||
`e` year(4) DEFAULT NULL |
|||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
|||
INSERT INTO t1 VALUES('2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23'); |
|||
Warnings: |
|||
Note 1265 Data truncated for column 'a' at row 1 |
|||
Note 1265 Data truncated for column 'c' at row 1 |
|||
Warning 1265 Data truncated for column 'e' at row 1 |
|||
SELECT * FROM t1; |
|||
a b c d e |
|||
2003-05-27 2003-05-27 10:45:23 10:45:23 2003-05-27 10:45:23 2003 |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` date DEFAULT NULL, |
|||
`b` datetime DEFAULT NULL, |
|||
`c` time DEFAULT NULL, |
|||
`d` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', |
|||
`e` year(4) DEFAULT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT' `TABLE_TYPE`='MYSQL' |
|||
SELECT * FROM t1; |
|||
a b c d e |
|||
2003-05-27 2003-05-27 10:45:23 10:45:23 2003-05-27 10:45:23 2003 |
|||
DROP TABLE t1; |
|||
DROP TABLE t1; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
@ -1,77 +1,77 @@ |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/Testbal.dat $MYSQLD_DATADIR/test/Testbal.dat |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT NOT NULL |
|||
) Engine=CONNECT TABLE_TYPE=BIN FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
SET time_zone='+00:00'; |
|||
CREATE TABLE t1 |
|||
( |
|||
fig INT(4) NOT NULL FIELD_FORMAT='C', |
|||
name CHAR(10) not null, |
|||
birth DATE NOT NULL, |
|||
id CHAR(5) NOT NULL FIELD_FORMAT='S', |
|||
salary DOUBLE(9,2) NOT NULL DEFAULT 0.00 FIELD_FORMAT='F', |
|||
dept INT(4) NOT NULL FIELD_FORMAT='S' |
|||
) ENGINE=CONNECT TABLE_TYPE=BIN BLOCK_SIZE=5 FILE_NAME='Testbal.dat'; |
|||
SELECT * FROM t1; |
|||
|
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (55555,'RONALD','1980-02-26','3333',4444.44,555); |
|||
INSERT INTO t1 VALUES (5555,'RONALD','1980-02-26','3333',4444.44,555); |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
fig INT(4) NOT NULL FIELD_FORMAT='C', |
|||
name CHAR(10) not null, |
|||
birth DATE NOT NULL, |
|||
id CHAR(5) NOT NULL FIELD_FORMAT='S', |
|||
salary DOUBLE(9,2) NOT NULL DEFAULT 0.00 FIELD_FORMAT='F', |
|||
dept INT(4) NOT NULL FIELD_FORMAT='S' |
|||
) ENGINE=CONNECT TABLE_TYPE=BIN READONLY=Yes FILE_NAME='Testbal.dat'; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (7777,'BILL','1973-06-30',4444,5555.555,777); |
|||
ALTER TABLE t1 READONLY=NO; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES (7777,'BILL','1973-06-30',4444,5555.555,777); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=YES; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (7777,'BILL','1973-06-30',4444,5555.555,777); |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing that the underlying file is created |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
c CHAR(4) NOT NULL FIELD_FORMAT='C' |
|||
) ENGINE=CONNECT TABLE_TYPE=BIN FILE_NAME='bin2.dat'; |
|||
INSERT INTO t1 VALUES (10),(20),(300),(4000); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/Testbal.dat |
|||
--remove_file $MYSQLD_DATADIR/test/bin2.dat |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/Testbal.dat $MYSQLD_DATADIR/test/Testbal.dat |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT NOT NULL |
|||
) Engine=CONNECT TABLE_TYPE=BIN FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
SET time_zone='+00:00'; |
|||
CREATE TABLE t1 |
|||
( |
|||
fig INT(4) NOT NULL FIELD_FORMAT='C', |
|||
name CHAR(10) not null, |
|||
birth DATE NOT NULL, |
|||
id CHAR(5) NOT NULL FIELD_FORMAT='S', |
|||
salary DOUBLE(9,2) NOT NULL DEFAULT 0.00 FIELD_FORMAT='F', |
|||
dept INT(4) NOT NULL FIELD_FORMAT='S' |
|||
) ENGINE=CONNECT TABLE_TYPE=BIN BLOCK_SIZE=5 FILE_NAME='Testbal.dat'; |
|||
SELECT * FROM t1; |
|||
|
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (55555,'RONALD','1980-02-26','3333',4444.44,555); |
|||
INSERT INTO t1 VALUES (5555,'RONALD','1980-02-26','3333',4444.44,555); |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
fig INT(4) NOT NULL FIELD_FORMAT='C', |
|||
name CHAR(10) not null, |
|||
birth DATE NOT NULL, |
|||
id CHAR(5) NOT NULL FIELD_FORMAT='S', |
|||
salary DOUBLE(9,2) NOT NULL DEFAULT 0.00 FIELD_FORMAT='F', |
|||
dept INT(4) NOT NULL FIELD_FORMAT='S' |
|||
) ENGINE=CONNECT TABLE_TYPE=BIN READONLY=Yes FILE_NAME='Testbal.dat'; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES (7777,'BILL','1973-06-30',4444,5555.555,777); |
|||
ALTER TABLE t1 READONLY=NO; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES (7777,'BILL','1973-06-30',4444,5555.555,777); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=YES; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES (7777,'BILL','1973-06-30',4444,5555.555,777); |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing that the underlying file is created |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
c CHAR(4) NOT NULL FIELD_FORMAT='C' |
|||
) ENGINE=CONNECT TABLE_TYPE=BIN FILE_NAME='bin2.dat'; |
|||
INSERT INTO t1 VALUES (10),(20),(300),(4000); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/Testbal.dat |
|||
--remove_file $MYSQLD_DATADIR/test/bin2.dat |
|||
@ -1,185 +1,185 @@ |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/people.csv $MYSQLD_DATADIR/test/people.csv |
|||
|
|||
SET NAMES utf8; |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT NOT NULL |
|||
) Engine=CONNECT TABLE_TYPE=CSV FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing examples from the manual |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
name CHAR(12) NOT NULL, |
|||
birth DATE NOT NULL DATE_FORMAT='DD/MM/YY', |
|||
children SMALLINT(2) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='people.csv' |
|||
HEADER=1 SEP_CHAR=';' QUOTED=1; |
|||
SELECT * FROM t1; |
|||
INSERT INTO t1 VALUES ('RONALD','1980-02-26',4); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/people.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/people.csv'),'\r\n','\n'); |
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
name CHAR(12) NOT NULL, |
|||
birth DATE NOT NULL DATE_FORMAT='DD/MM/YY', |
|||
children SMALLINT(2) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='people.csv' |
|||
HEADER=1 SEP_CHAR=';' QUOTED=1 READONLY=yes; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES ('BILL','1973-06-30',5); |
|||
--error ER_GET_ERRMSG |
|||
UPDATE t1 SET children=6 WHERE name='BILL'; |
|||
--error ER_GET_ERRMSG |
|||
DELETE FROM t1 WHERE name='BILL'; |
|||
--error ER_GET_ERRMSG |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=no; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES ('BILL','1973-06-30',5); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=1; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES ('BILL','1973-06-30',5); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing that the underlying file is created |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL, |
|||
c2 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='tmp.csv' |
|||
HEADER=1 SEP_CHAR=',' QUOTED=1; |
|||
INSERT INTO t1 VALUES (10,10),(20,20),(300,300),(4000,4000), ('a b','c d'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/tmp.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/tmp.csv'),'\r\n','\n'); |
|||
|
|||
--echo # |
|||
--echo # Creating a CSV table from a MyISAM table |
|||
--echo # |
|||
CREATE TABLE t1 (a VARCHAR(10) NOT NULL, b INT NOT NULL) ENGINE=MyISAM; |
|||
INSERT INTO t1 VALUES ('test1',1), ('test2',2); |
|||
CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t2.csv' |
|||
AS SELECT * FROM t1; |
|||
SELECT * FROM t2; |
|||
DROP TABLE t2; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t2.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t2.csv'),'\r\n','\n'); |
|||
--remove_file $MYSQLD_DATADIR/test/t2.csv |
|||
|
|||
--echo # |
|||
--echo # Testing international data |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=utf8; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=utf8 DATA_CHARSET=latin1; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv'; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=latin1; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=latin1 DATA_CHARSET=utf8; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) CHARACTER SET latin1 NOT NULL, |
|||
c2 CHAR(12) CHARACTER SET utf8 NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv'; |
|||
INSERT INTO t1 VALUES ('á','á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/people.csv |
|||
--remove_file $MYSQLD_DATADIR/test/tmp.csv |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/people.csv $MYSQLD_DATADIR/test/people.csv |
|||
|
|||
SET NAMES utf8; |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT NOT NULL |
|||
) Engine=CONNECT TABLE_TYPE=CSV FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing examples from the manual |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
name CHAR(12) NOT NULL, |
|||
birth DATE NOT NULL DATE_FORMAT='DD/MM/YY', |
|||
children SMALLINT(2) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='people.csv' |
|||
HEADER=1 SEP_CHAR=';' QUOTED=1; |
|||
SELECT * FROM t1; |
|||
INSERT INTO t1 VALUES ('RONALD','1980-02-26',4); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/people.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/people.csv'),'\r\n','\n'); |
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
name CHAR(12) NOT NULL, |
|||
birth DATE NOT NULL DATE_FORMAT='DD/MM/YY', |
|||
children SMALLINT(2) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='people.csv' |
|||
HEADER=1 SEP_CHAR=';' QUOTED=1 READONLY=yes; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES ('BILL','1973-06-30',5); |
|||
--error ER_OPEN_AS_READONLY |
|||
UPDATE t1 SET children=6 WHERE name='BILL'; |
|||
--error ER_OPEN_AS_READONLY |
|||
DELETE FROM t1 WHERE name='BILL'; |
|||
--error ER_OPEN_AS_READONLY |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=no; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES ('BILL','1973-06-30',5); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=1; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES ('BILL','1973-06-30',5); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing that the underlying file is created |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL, |
|||
c2 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='tmp.csv' |
|||
HEADER=1 SEP_CHAR=',' QUOTED=1; |
|||
INSERT INTO t1 VALUES (10,10),(20,20),(300,300),(4000,4000), ('a b','c d'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/tmp.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/tmp.csv'),'\r\n','\n'); |
|||
|
|||
--echo # |
|||
--echo # Creating a CSV table from a MyISAM table |
|||
--echo # |
|||
CREATE TABLE t1 (a VARCHAR(10) NOT NULL, b INT NOT NULL) ENGINE=MyISAM; |
|||
INSERT INTO t1 VALUES ('test1',1), ('test2',2); |
|||
CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t2.csv' |
|||
AS SELECT * FROM t1; |
|||
SELECT * FROM t2; |
|||
DROP TABLE t2; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t2.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t2.csv'),'\r\n','\n'); |
|||
--remove_file $MYSQLD_DATADIR/test/t2.csv |
|||
|
|||
--echo # |
|||
--echo # Testing international data |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=utf8; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=utf8 DATA_CHARSET=latin1; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv'; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=latin1; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv' |
|||
CHARSET=latin1 DATA_CHARSET=utf8; |
|||
INSERT INTO t1 VALUES ('á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
c1 CHAR(12) CHARACTER SET latin1 NOT NULL, |
|||
c2 CHAR(12) CHARACTER SET utf8 NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.csv'; |
|||
INSERT INTO t1 VALUES ('á','á'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.csv |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT HEX(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.csv'),'\r\n','\n')); |
|||
--remove_file $MYSQLD_DATADIR/test/t1.csv |
|||
|
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/people.csv |
|||
--remove_file $MYSQLD_DATADIR/test/tmp.csv |
|||
1018
storage/connect/mysql-test/connect/t/dbf.test
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,108 +1,108 @@ |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/dept.dat $MYSQLD_DATADIR/test/dept.dat |
|||
--copy_file $MTR_SUITE_DIR/std_data/boys.txt $MYSQLD_DATADIR/test/boys.txt |
|||
--copy_file $MTR_SUITE_DIR/std_data/boyswin.txt $MYSQLD_DATADIR/test/boyswin.txt |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT NOT NULL |
|||
) Engine=CONNECT TABLE_TYPE=DOS FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
id INT NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='t1.txt'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=1; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (20); |
|||
--error ER_GET_ERRMSG |
|||
UPDATE t1 SET id=20 WHERE id=10; |
|||
--error ER_GET_ERRMSG |
|||
DELETE FROM t1 WHERE id=10; |
|||
--error ER_GET_ERRMSG |
|||
TRUNCATE TABLE t1; |
|||
ALTER TABLE t1 READONLY=0; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES (20); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1.txt |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing manual examples |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
number CHAR(4) not null, |
|||
location CHAR(15) NOT NULL flag=5, |
|||
director CHAR(5) NOT NULL flag=20, |
|||
function CHAR(12) NOT NULL flag=26, |
|||
name CHAR(22) NOT NULL flag=38 |
|||
) ENGINE=CONNECT TABLE_TYPE=DOS FILE_NAME='dept.dat'; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boys.txt' ENDING=1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boys.txt' LRECL=47 ENDING=1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boyswin.txt' ENDING=2; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boyswin.txt' LRECL=47 ENDING=2; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/dept.dat |
|||
--remove_file $MYSQLD_DATADIR/test/boys.txt |
|||
--remove_file $MYSQLD_DATADIR/test/boyswin.txt |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/dept.dat $MYSQLD_DATADIR/test/dept.dat |
|||
--copy_file $MTR_SUITE_DIR/std_data/boys.txt $MYSQLD_DATADIR/test/boys.txt |
|||
--copy_file $MTR_SUITE_DIR/std_data/boyswin.txt $MYSQLD_DATADIR/test/boyswin.txt |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT NOT NULL |
|||
) Engine=CONNECT TABLE_TYPE=DOS FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
id INT NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='t1.txt'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=1; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES (20); |
|||
--error ER_OPEN_AS_READONLY |
|||
UPDATE t1 SET id=20 WHERE id=10; |
|||
--error ER_OPEN_AS_READONLY |
|||
DELETE FROM t1 WHERE id=10; |
|||
--error ER_OPEN_AS_READONLY |
|||
TRUNCATE TABLE t1; |
|||
ALTER TABLE t1 READONLY=0; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES (20); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1.txt |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing manual examples |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
number CHAR(4) not null, |
|||
location CHAR(15) NOT NULL flag=5, |
|||
director CHAR(5) NOT NULL flag=20, |
|||
function CHAR(12) NOT NULL flag=26, |
|||
name CHAR(22) NOT NULL flag=38 |
|||
) ENGINE=CONNECT TABLE_TYPE=DOS FILE_NAME='dept.dat'; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boys.txt' ENDING=1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boys.txt' LRECL=47 ENDING=1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boyswin.txt' ENDING=2; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
name char(12) not null, |
|||
city char(12) not null, |
|||
birth date not null date_format='DD/MM/YYYY', |
|||
hired date not null date_format='DD/MM/YYYY' flag=36 |
|||
) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='boyswin.txt' LRECL=47 ENDING=2; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/dept.dat |
|||
--remove_file $MYSQLD_DATADIR/test/boys.txt |
|||
--remove_file $MYSQLD_DATADIR/test/boyswin.txt |
|||
@ -1,156 +1,156 @@ |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/contact.ini $MYSQLD_DATADIR/test/contact.ini |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT |
|||
) Engine=CONNECT TABLE_TYPE=INI FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing examples from the manual |
|||
--echo # |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
contact CHAR(16) flag=1, |
|||
name CHAR(20), |
|||
forename CHAR(32), |
|||
hired date date_format='DD/MM/YYYY', |
|||
address CHAR(64), |
|||
city CHAR(20), |
|||
zipcode CHAR(8), |
|||
tel CHAR(16) |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='contact.ini'; |
|||
SELECT contact, name, hired, city, tel FROM t1; |
|||
|
|||
UPDATE t1 SET forename= 'Harry' where contact='UK1'; |
|||
SELECT * FROM t1 WHERE contact='UK1'; |
|||
INSERT INTO t1 (contact,forename) VALUES ('UK1','Harrison'); |
|||
SELECT * FROM t1 WHERE contact='UK1'; |
|||
INSERT INTO t1 (contact,forename) VALUES ('UK2','John'); |
|||
SELECT * FROM t1 WHERE contact='UK2'; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/contact.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/contact.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
section CHAR(16) flag=1, |
|||
keyname CHAR(16) flag=2, |
|||
value CHAR(32) |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='contact.ini' |
|||
OPTION_LIST='Layout=Row'; |
|||
UPDATE t1 SET value='Paul' WHERE section='UK2' AND keyname='forename'; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/contact.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/contact.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing that the underlying file is created |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
contact CHAR(12) NOT NULL flag=1, |
|||
c2 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='tmp.ini'; |
|||
INSERT INTO t1 VALUES (10,10),(20,20),(300,300),(4000,4000), ('a b','c d'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/tmp.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/tmp.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing bad table |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
id INT |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.ini'; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
contact CHAR(10) flag=1, |
|||
c2 CHAR(60) |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.ini'; |
|||
INSERT INTO t1 VALUES ('UK',10),('FR',20),('RU',30); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=1; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES ('US',40); |
|||
--error ER_GET_ERRMSG |
|||
UPDATE t1 SET c2=20 WHERE c2=10; |
|||
--error ER_GET_ERRMSG |
|||
DELETE FROM t1 WHERE c2=10; |
|||
--error ER_GET_ERRMSG |
|||
TRUNCATE TABLE t1; |
|||
ALTER TABLE t1 READONLY=0; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES ('US',40); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1.ini |
|||
|
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/contact.ini |
|||
--remove_file $MYSQLD_DATADIR/test/tmp.ini |
|||
|
|||
|
|||
--echo # |
|||
--echo # Bug: TABLE_TYPE=ini does not clear memory between CREATE TABLEs |
|||
--echo # |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES ('sec1','val1'),('sec2','val2'); |
|||
SELECT sec AS s, val AS v FROM t1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (sec2 CHAR(10) NOT NULL FLAG=1, val2 CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES ('sec1','val11'),('sec2','val22'); |
|||
SELECT sec2 AS s, val2 AS v FROM t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
CREATE TABLE t2 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES('1sec1','1val1'),('1sec2','1val2'); |
|||
INSERT INTO t2 VALUES('2sec1','2val1'),('2sec2','2val2'); |
|||
SELECT sec AS s, val AS v FROM t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
SELECT sec AS s, val AS v FROM t2; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t2.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t2.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
DROP TABLE t1, t2; |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--copy_file $MTR_SUITE_DIR/std_data/contact.ini $MYSQLD_DATADIR/test/contact.ini |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
ID INT |
|||
) Engine=CONNECT TABLE_TYPE=INI FILE_NAME='nonexistent.txt'; |
|||
--replace_regex /on .*test.nonexistent.txt/on DATADIR\/test\/nonexistent.txt/ |
|||
# TODO: check why this is needed for Windows |
|||
--replace_result Open(rt) Open(rb) |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing examples from the manual |
|||
--echo # |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
contact CHAR(16) flag=1, |
|||
name CHAR(20), |
|||
forename CHAR(32), |
|||
hired date date_format='DD/MM/YYYY', |
|||
address CHAR(64), |
|||
city CHAR(20), |
|||
zipcode CHAR(8), |
|||
tel CHAR(16) |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='contact.ini'; |
|||
SELECT contact, name, hired, city, tel FROM t1; |
|||
|
|||
UPDATE t1 SET forename= 'Harry' where contact='UK1'; |
|||
SELECT * FROM t1 WHERE contact='UK1'; |
|||
INSERT INTO t1 (contact,forename) VALUES ('UK1','Harrison'); |
|||
SELECT * FROM t1 WHERE contact='UK1'; |
|||
INSERT INTO t1 (contact,forename) VALUES ('UK2','John'); |
|||
SELECT * FROM t1 WHERE contact='UK2'; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/contact.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/contact.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
section CHAR(16) flag=1, |
|||
keyname CHAR(16) flag=2, |
|||
value CHAR(32) |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='contact.ini' |
|||
OPTION_LIST='Layout=Row'; |
|||
UPDATE t1 SET value='Paul' WHERE section='UK2' AND keyname='forename'; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/contact.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/contact.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing that the underlying file is created |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
contact CHAR(12) NOT NULL flag=1, |
|||
c2 CHAR(12) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='tmp.ini'; |
|||
INSERT INTO t1 VALUES (10,10),(20,20),(300,300),(4000,4000), ('a b','c d'); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/tmp.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/tmp.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing bad table |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
id INT |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.ini'; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
|
|||
--echo # |
|||
--echo # Testing READONLY tables |
|||
--echo # |
|||
CREATE TABLE t1 |
|||
( |
|||
contact CHAR(10) flag=1, |
|||
c2 CHAR(60) |
|||
) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.ini'; |
|||
INSERT INTO t1 VALUES ('UK',10),('FR',20),('RU',30); |
|||
SELECT * FROM t1; |
|||
ALTER TABLE t1 READONLY=1; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES ('US',40); |
|||
--error ER_OPEN_AS_READONLY |
|||
UPDATE t1 SET c2=20 WHERE c2=10; |
|||
--error ER_OPEN_AS_READONLY |
|||
DELETE FROM t1 WHERE c2=10; |
|||
--error ER_OPEN_AS_READONLY |
|||
TRUNCATE TABLE t1; |
|||
ALTER TABLE t1 READONLY=0; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES ('US',40); |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1.ini |
|||
|
|||
|
|||
# |
|||
# Clean up |
|||
# |
|||
--remove_file $MYSQLD_DATADIR/test/contact.ini |
|||
--remove_file $MYSQLD_DATADIR/test/tmp.ini |
|||
|
|||
|
|||
--echo # |
|||
--echo # Bug: TABLE_TYPE=ini does not clear memory between CREATE TABLEs |
|||
--echo # |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES ('sec1','val1'),('sec2','val2'); |
|||
SELECT sec AS s, val AS v FROM t1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (sec2 CHAR(10) NOT NULL FLAG=1, val2 CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES ('sec1','val11'),('sec2','val22'); |
|||
SELECT sec2 AS s, val2 AS v FROM t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
CREATE TABLE t2 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) |
|||
ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES('1sec1','1val1'),('1sec2','1val2'); |
|||
INSERT INTO t2 VALUES('2sec1','2val1'),('2sec2','2val2'); |
|||
SELECT sec AS s, val AS v FROM t1; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t1.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t1.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
SELECT sec AS s, val AS v FROM t2; |
|||
--chmod 0777 $MYSQLD_DATADIR/test/t2.ini |
|||
--replace_result $MYSQLD_DATADIR DATADIR |
|||
--eval SELECT REPLACE(REPLACE(LOAD_FILE('$MYSQLD_DATADIR/test/t2.ini'),'\r\n','\n'),'\n\n','\n'); |
|||
DROP TABLE t1, t2; |
|||
@ -0,0 +1,27 @@ |
|||
--source include/not_embedded.inc |
|||
|
|||
let $PORT= `select @@port`; |
|||
|
|||
--disable_query_log |
|||
--replace_result $PORT PORT |
|||
--error 0,ER_UNKNOWN_ERROR |
|||
eval CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/tx1'; |
|||
if (!`SELECT count(*) FROM INFORMATION_SCHEMA.TABLES |
|||
WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1' |
|||
AND ENGINE='CONNECT' |
|||
AND CREATE_OPTIONS LIKE '%`table_type`=MySQL%'`) |
|||
{ |
|||
Skip Need MySQL support; |
|||
} |
|||
DROP TABLE t1; |
|||
--enable_query_log |
|||
|
|||
connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,); |
|||
connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,); |
|||
|
|||
connection master; |
|||
CREATE DATABASE connect; |
|||
|
|||
connection slave; |
|||
CREATE DATABASE connect; |
|||
@ -0,0 +1,9 @@ |
|||
connection master; |
|||
--disable_warnings |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
|
|||
connection slave; |
|||
DROP TABLE IF EXISTS connect.t1; |
|||
DROP DATABASE IF EXISTS connect; |
|||
--enable_warnings |
|||
@ -0,0 +1,33 @@ |
|||
-- source myconn.inc |
|||
|
|||
connection slave; |
|||
|
|||
CREATE TABLE t1 ( |
|||
`id` int(20) primary key, |
|||
`group` int NOT NULL default 1, |
|||
`a\\b` int NOT NULL default 2, |
|||
`a\\` int unsigned, |
|||
`name` varchar(32) default 'name') |
|||
DEFAULT CHARSET=latin1; |
|||
|
|||
connection master; |
|||
|
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; |
|||
|
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 (id, name) VALUES (1, 'foo'); |
|||
INSERT INTO t1 (id, name) VALUES (2, 'fee'); |
|||
--sorted_result |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
connection slave; |
|||
--sorted_result |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
-- source myconn_cleanup.inc |
|||
|
|||
@ -0,0 +1,45 @@ |
|||
-- source myconn.inc |
|||
|
|||
--echo # |
|||
--echo # Checking Sending Commands |
|||
--echo # |
|||
connection master; |
|||
|
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 ( |
|||
command VARCHAR(128) NOT NULL, |
|||
warnings INT(4) NOT NULL FLAG=3, |
|||
number INT(5) NOT NULL FLAG=1, |
|||
message VARCHAR(255) FLAG=2) |
|||
ENGINE=CONNECT TABLE_TYPE=MYSQL CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test' OPTION_LIST='Execsrc=1,maxerr=2'; |
|||
|
|||
SELECT * FROM t1 WHERE command IN ('Warning','Note', |
|||
'drop table if exists t1', |
|||
'create table t1 (id int key auto_increment, msg varchar(32) not null)', |
|||
"insert into t1(msg) values('One'),(NULL),('Three')", |
|||
"insert into t1 values(2,'Deux') on duplicate key update msg = 'Two'", |
|||
"insert into t1(message) values('Four'),('Five'),('Six')", |
|||
'insert into t1(id) values(NULL)', |
|||
"update t1 set msg = 'Four' where id = 4", |
|||
'select * from t1'); |
|||
|
|||
--echo # |
|||
--echo # Checking Using Procedure |
|||
--echo # |
|||
DROP PROCEDURE IF EXISTS p1; |
|||
CREATE PROCEDURE p1(cmd varchar(512)) |
|||
READS SQL DATA |
|||
SELECT * FROM t1 WHERE command IN ('Warning','Note',cmd); |
|||
|
|||
CALL p1('insert into t1(id) values(NULL)'); |
|||
CALL p1('update t1 set msg = "Five" where id = 5'); |
|||
DROP PROCEDURE p1; |
|||
DROP TABLE t1; |
|||
|
|||
connection slave; |
|||
--sorted_result |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
-- source myconn_cleanup.inc |
|||
|
|||
@ -0,0 +1,325 @@ |
|||
-- source myconn.inc |
|||
|
|||
# |
|||
# This test is run against a remote MySQL server |
|||
# |
|||
|
|||
connection slave; |
|||
|
|||
CREATE TABLE t1 (a int, b char(10)); |
|||
INSERT INTO t1 VALUES (NULL,NULL),(0,'test00'),(1,'test01'),(2,'test02'),(3,'test03'); |
|||
SELECT * FROM t1; |
|||
|
|||
--echo # |
|||
--echo # Testing errors |
|||
--echo # |
|||
connection master; |
|||
|
|||
# Bad user name |
|||
# Suppress "mysql_real_connect failed:" (printed in _DEBUG build) |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT "mysql_real_connect failed: " "" |
|||
--error ER_UNKNOWN_ERROR |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://unknown@127.0.0.1:$SLAVE_MYPORT/test/t1'; |
|||
|
|||
# Bad database name |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT "mysql_real_connect failed: " "" |
|||
--error ER_UNKNOWN_ERROR |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/unknown/t1'; |
|||
|
|||
# Bad database name, with OPTION_LIST going first. |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT "mysql_real_connect failed: " "" |
|||
--error ER_UNKNOWN_ERROR |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' DBNAME='unknown' TABNAME='t1'; |
|||
|
|||
# Bad table name |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
--error ER_UNKNOWN_ERROR |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/unknown'; |
|||
--error ER_NO_SUCH_TABLE |
|||
SHOW CREATE TABLE t1; |
|||
|
|||
# Bad column name |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 (x int, y char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_GET_ERRMSG |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# The remote table disappeared |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; |
|||
|
|||
connection slave; |
|||
ALTER TABLE t1 RENAME t1backup; |
|||
|
|||
connection master; |
|||
--error ER_GET_ERRMSG |
|||
SELECT * FROM t1; |
|||
|
|||
connection slave; |
|||
ALTER TABLE t1backup RENAME t1; |
|||
|
|||
connection master; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing SELECT, etc. |
|||
--echo # |
|||
|
|||
# Automatic table structure |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# Explicit table structure |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# Explicit table structure: remote NULL, local NOT NULL |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 (a INT NOT NULL, b CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# Explicit table structure with wrong column types |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 (a char(10), b int) ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
connection slave; |
|||
DROP TABLE t1; |
|||
|
|||
--echo # |
|||
--echo # Testing numeric data types |
|||
--echo # |
|||
|
|||
# TODO: mediumint is converted to int, float is converted to double, decimal is converted to double |
|||
CREATE TABLE t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float, g double, h decimal(20,5)); |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES(100,3333,41235,1234567890,235000000000,3.14159265,3.14159265,3141.59265); |
|||
|
|||
connection master; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
connection slave; |
|||
DROP TABLE t1; |
|||
|
|||
# TODO: unsigned does not work |
|||
#CREATE TABLE t1 (a tinyint unsigned); |
|||
#SHOW CREATE TABLE t1; |
|||
|
|||
#connection master; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT'; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1; |
|||
|
|||
#connection slave; |
|||
#DROP TABLE t1; |
|||
|
|||
# TODO: add test for BIT |
|||
|
|||
--echo # |
|||
--echo # Testing character data types |
|||
--echo # |
|||
|
|||
CREATE TABLE t1 (a char(12), b varchar(12)); |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES('Welcome','Hello, World'); |
|||
SELECT * FROM t1; |
|||
|
|||
connection master; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
connection slave; |
|||
DROP TABLE t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type tinytext |
|||
#CREATE TABLE t1 (a tinytext); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type mediumtext |
|||
#CREATE TABLE t1 (a mediumtext); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: text is converted to varchar(256) |
|||
#CREATE TABLE t1 (a text); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type longtext |
|||
#CREATE TABLE t1 (a longtext); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
#TODO: add tests for ENUM |
|||
#TODO: add tests for SET |
|||
|
|||
#--echo # |
|||
#--echo # Testing binary data types |
|||
#--echo # |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type binary |
|||
#CREATE TABLE t1 (a binary(10)); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type varbinary |
|||
#CREATE TABLE t1 (a varbinary(10)); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type tinyblob |
|||
#CREATE TABLE t1 (a tinyblob); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type mediumblob |
|||
#CREATE TABLE t1 (a mediumblob); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: blob is converted to varchar(256) |
|||
#CREATE TABLE t1 (a blob); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type longblob |
|||
#CREATE TABLE t1 (a longblob); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
# TODO: ERROR 1105: Unsupported column type geometry |
|||
#CREATE TABLE t1 (a geometry); |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=127.0.0.1,user=root,port=$SLAVE_MYPORT' |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
#SHOW CREATE TABLE t1; |
|||
#SELECT * FROM t1; |
|||
#DROP TABLE t1, t1; |
|||
|
|||
--echo # |
|||
--echo # Testing temporal data types |
|||
--echo # |
|||
|
|||
CREATE TABLE t1 (a date, b datetime, c time, d timestamp, e year); |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES('2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23','2003-05-27 10:45:23'); |
|||
SELECT * FROM t1; |
|||
|
|||
connection master; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
eval CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=MYSQL |
|||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT'; |
|||
--replace_result $SLAVE_MYPORT SLAVE_PORT |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
connection slave; |
|||
DROP TABLE t1; |
|||
|
|||
-- source myconn_cleanup.inc |
|||
|
|||
@ -1,80 +1,80 @@ |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
CREATE TABLE dir1 ( |
|||
spath VARCHAR(256) NOT NULL flag=1, |
|||
fname VARCHAR(256) NOT NULL, |
|||
ftype CHAR(4) NOT NULL, |
|||
size DOUBLE(12,0) NOT NULL flag=5 |
|||
) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*vec*'; |
|||
|
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
a INT NOT NULL, |
|||
b CHAR(10) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=VEC FILE_NAME='t1vec'; |
|||
SHOW CREATE TABLE t1; |
|||
# Testing SELECT on empty file |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT * FROM t1; |
|||
INSERT INTO t1 VALUES (0,'test01'), (1,'test01'), (2,'test02'), (3,'test03'); |
|||
SELECT * FROM t1; |
|||
SELECT a FROM t1; |
|||
SELECT b FROM t1; |
|||
--replace_result $MYSQLD_DATADIR DATADIR/ |
|||
SELECT fname, ftype, size FROM dir1 ORDER BY fname, ftype; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec1 |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec2 |
|||
|
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
a INT NOT NULL, |
|||
b CHAR(10) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=VEC FILE_NAME='t1vec' MAX_ROWS=10; |
|||
SHOW CREATE TABLE t1; |
|||
# Testing SELECTs on empty file |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT * FROM t1; |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT a FROM t1; |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT b FROM t1; |
|||
INSERT INTO t1 VALUES (0,'test01'), (1,'test01'), (2,'test02'), (3,'test03'); |
|||
SELECT * FROM t1; |
|||
SELECT a FROM t1; |
|||
SELECT b FROM t1; |
|||
--replace_result $MYSQLD_DATADIR DATADIR/ |
|||
SELECT fname, ftype, size FROM dir1 ORDER BY fname, ftype; |
|||
--echo # |
|||
--echo # Testing READONLY |
|||
--echo # |
|||
ALTER TABLE t1 READONLY=yes; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_GET_ERRMSG |
|||
INSERT INTO t1 VALUES (4,'test04'); |
|||
--error ER_GET_ERRMSG |
|||
UPDATE t1 SET b='test04' WHERE a=3; |
|||
--error ER_GET_ERRMSG |
|||
DELETE FROM t1 WHERE a=3; |
|||
--error ER_GET_ERRMSG |
|||
TRUNCATE TABLE t1; |
|||
ALTER TABLE t1 READONLY=no; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES (4,'test04'); |
|||
UPDATE t1 SET b='test04a' WHERE a=4; |
|||
DELETE FROM t1 WHERE a=0; |
|||
SELECT * FROM t1; |
|||
TRUNCATE TABLE t1; |
|||
SELECT fname, ftype, size FROM dir1 ORDER BY fname, ftype; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec.blk |
|||
|
|||
|
|||
--echo # |
|||
--echo # Clean up |
|||
--echo # |
|||
DROP TABLE dir1; |
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
CREATE TABLE dir1 ( |
|||
spath VARCHAR(256) NOT NULL flag=1, |
|||
fname VARCHAR(256) NOT NULL, |
|||
ftype CHAR(4) NOT NULL, |
|||
size DOUBLE(12,0) NOT NULL flag=5 |
|||
) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*vec*'; |
|||
|
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
a INT NOT NULL, |
|||
b CHAR(10) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=VEC FILE_NAME='t1vec'; |
|||
SHOW CREATE TABLE t1; |
|||
# Testing SELECT on empty file |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT * FROM t1; |
|||
INSERT INTO t1 VALUES (0,'test01'), (1,'test01'), (2,'test02'), (3,'test03'); |
|||
SELECT * FROM t1; |
|||
SELECT a FROM t1; |
|||
SELECT b FROM t1; |
|||
--replace_result $MYSQLD_DATADIR DATADIR/ |
|||
SELECT fname, ftype, size FROM dir1 ORDER BY fname, ftype; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec1 |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec2 |
|||
|
|||
|
|||
CREATE TABLE t1 |
|||
( |
|||
a INT NOT NULL, |
|||
b CHAR(10) NOT NULL |
|||
) ENGINE=CONNECT TABLE_TYPE=VEC FILE_NAME='t1vec' MAX_ROWS=10; |
|||
SHOW CREATE TABLE t1; |
|||
# Testing SELECTs on empty file |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT * FROM t1; |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT a FROM t1; |
|||
--replace_regex /Open.rb. error 2 on .*\/test\/t1vec/Open(rb) error 2 on DATADIR\/test\/t1vec/ |
|||
SELECT b FROM t1; |
|||
INSERT INTO t1 VALUES (0,'test01'), (1,'test01'), (2,'test02'), (3,'test03'); |
|||
SELECT * FROM t1; |
|||
SELECT a FROM t1; |
|||
SELECT b FROM t1; |
|||
--replace_result $MYSQLD_DATADIR DATADIR/ |
|||
SELECT fname, ftype, size FROM dir1 ORDER BY fname, ftype; |
|||
--echo # |
|||
--echo # Testing READONLY |
|||
--echo # |
|||
ALTER TABLE t1 READONLY=yes; |
|||
SHOW CREATE TABLE t1; |
|||
--error ER_OPEN_AS_READONLY |
|||
INSERT INTO t1 VALUES (4,'test04'); |
|||
--error ER_OPEN_AS_READONLY |
|||
UPDATE t1 SET b='test04' WHERE a=3; |
|||
--error ER_OPEN_AS_READONLY |
|||
DELETE FROM t1 WHERE a=3; |
|||
--error ER_OPEN_AS_READONLY |
|||
TRUNCATE TABLE t1; |
|||
ALTER TABLE t1 READONLY=no; |
|||
SHOW CREATE TABLE t1; |
|||
INSERT INTO t1 VALUES (4,'test04'); |
|||
UPDATE t1 SET b='test04a' WHERE a=4; |
|||
DELETE FROM t1 WHERE a=0; |
|||
SELECT * FROM t1; |
|||
TRUNCATE TABLE t1; |
|||
SELECT fname, ftype, size FROM dir1 ORDER BY fname, ftype; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec |
|||
--remove_file $MYSQLD_DATADIR/test/t1vec.blk |
|||
|
|||
|
|||
--echo # |
|||
--echo # Clean up |
|||
--echo # |
|||
DROP TABLE dir1; |
|||
@ -1,9 +1,14 @@ |
|||
/***********************************************************************/ |
|||
/* Prototypes of Functions used externally. */ |
|||
/***********************************************************************/ |
|||
#ifndef __MYUTIL__H |
|||
#define __MYUTIL__H |
|||
|
|||
enum enum_field_types PLGtoMYSQL(int type, bool dbf); |
|||
const char *PLGtoMYSQLtype(int type, bool dbf); |
|||
int MYSQLtoPLG(char *typname); |
|||
const char *PLGtoMYSQLtype(int type, bool dbf, char var = NULL); |
|||
int MYSQLtoPLG(char *typname, char *var = NULL); |
|||
int MYSQLtoPLG(int mytype); |
|||
char *MyDateFmt(int mytype); |
|||
char *MyDateFmt(char *typname); |
|||
|
|||
#endif // __MYUTIL__H |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue