mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
400 lines
12 KiB
Plaintext
400 lines
12 KiB
Plaintext
let $PORT= `select @@port`;
|
|
|
|
# TODO: remote VARCHAR is displayed as CHAR
|
|
|
|
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 #
|
|
|
|
# Bad user name
|
|
# Suppress "mysql_real_connect failed:" (printed in _DEBUG build)
|
|
--replace_result $PORT PORT "mysql_real_connect failed: " ""
|
|
--error ER_UNKNOWN_ERROR
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root1,port=$PORT'
|
|
|
|
# Bad database name
|
|
--replace_result $PORT PORT "mysql_real_connect failed: " ""
|
|
--error ER_UNKNOWN_ERROR
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL DBNAME='unknown' TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
|
|
# Bad database name, with OPTION_LIST going first.
|
|
--replace_result $PORT PORT "mysql_real_connect failed: " ""
|
|
--error ER_UNKNOWN_ERROR
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL OPTION_LIST='host=localhost,user=root,port=$PORT' DBNAME='unknown' TABNAME='t1'
|
|
|
|
# Bad table name
|
|
--replace_result $PORT PORT
|
|
--error ER_UNKNOWN_ERROR
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='unknown' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--error ER_NO_SUCH_TABLE
|
|
SHOW CREATE TABLE t2;
|
|
|
|
# Bad column name
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 (x int, y char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
--error ER_GET_ERRMSG
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
# The remote table disappeared
|
|
ALTER TABLE t1 RENAME t1backup;
|
|
--error ER_NO_SUCH_TABLE
|
|
SELECT * FROM t2;
|
|
ALTER TABLE t1backup RENAME t1;
|
|
|
|
|
|
|
|
--echo #
|
|
--echo # Testing SELECT, etc.
|
|
--echo #
|
|
|
|
# Automatic table structure
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
|
|
# Explicit table structure
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 (a int, b char(10)) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
|
|
# Explicit table structure: remote NULL, local NOT NULL
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 (a INT NOT NULL, b CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
|
|
# Explicit table structure with wrong column types
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 (a char(10), b int) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Testing numeric data types
|
|
--echo #
|
|
|
|
# TODO: tinyint is mapped to smallint
|
|
#CREATE TABLE t1 (a tinyint);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: unsigned does not work
|
|
#CREATE TABLE t1 (a tinyint unsigned);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
CREATE TABLE t1 (a smallint);
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
CREATE TABLE t1 (a mediumint);
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
CREATE TABLE t1 (a int);
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
|
|
# TODO: bigint is mapped to double(20,0)
|
|
CREATE TABLE t1 (a bigint);
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
|
|
# TODO: ERROR 1439: Display width out of range for 'a' (max = 255)
|
|
#CREATE TABLE t1 (a float);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1439: Display width out of range for 'a' (max = 255)
|
|
#CREATE TABLE t1 (a double);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: decimal is converted to double
|
|
#CREATE TABLE t1 (a decimal(20,5));
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: add test for BIT
|
|
|
|
--echo #
|
|
--echo # Testing character data types
|
|
--echo #
|
|
|
|
# TODO: char is mapped to varchar
|
|
CREATE TABLE t1 (a char(10));
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
CREATE TABLE t1 (a varchar(10));
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type tinytext
|
|
#CREATE TABLE t1 (a tinytext);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type mediumtext
|
|
#CREATE TABLE t1 (a mediumtext);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: text is converted to varchar(256)
|
|
#CREATE TABLE t1 (a text);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type longtext
|
|
#CREATE TABLE t1 (a longtext);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, 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 $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type varbinary
|
|
#CREATE TABLE t1 (a varbinary(10));
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type tinyblob
|
|
#CREATE TABLE t1 (a tinyblob);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type mediumblob
|
|
#CREATE TABLE t1 (a mediumblob);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: blob is converted to varchar(256)
|
|
#CREATE TABLE t1 (a blob);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type longblob
|
|
#CREATE TABLE t1 (a longblob);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: ERROR 1105: Unsupported column type geometry
|
|
#CREATE TABLE t1 (a geometry);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
--echo #
|
|
--echo # Testing temporal data types
|
|
--echo #
|
|
|
|
# TODO: time is converted to date
|
|
#CREATE TABLE t1 (a time);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
CREATE TABLE t1 (a date);
|
|
--replace_result $PORT PORT
|
|
--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t1;
|
|
--replace_result $PORT PORT
|
|
SHOW CREATE TABLE t2;
|
|
SELECT * FROM t2;
|
|
DROP TABLE t2, t1;
|
|
|
|
# TODO: datetime is converted to date
|
|
#CREATE TABLE t1 (a datetime);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: timestamp is converted to date
|
|
#CREATE TABLE t1 (a timestamp);
|
|
#--replace_result $PORT PORT
|
|
#--eval CREATE TABLE t2 ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='t1' OPTION_LIST='host=localhost,user=root,port=$PORT'
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t1;
|
|
#--replace_result $PORT PORT
|
|
#SHOW CREATE TABLE t2;
|
|
#SELECT * FROM t2;
|
|
#DROP TABLE t2, t1;
|
|
|
|
# TODO: add test for YEAR
|
|
# TODO: add tests for fractional seconds
|
|
|