mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
fa36a7426b
Honor unique/not unique when creating keys for internal tempory tables. Added new variables to be used to limit how keys are created for internal temporary tables. include/maria.h: Added maria_max_key_length() and maria_max_key_segments() include/myisam.h: Added myisam_max_key_length() and myisam_max_key_segments() mysql-test/r/mysql.result: Drop all used tables mysql-test/r/subselect4.result: Added test case for lp:879939 mysql-test/t/mysql.test: Drop all used tables mysql-test/t/subselect4.test: Added test case for lp:879939 sql/mysql_priv.h: Added internal_tmp_table_max_key_length and internal_tmp_table_max_key_segments to be used to limit how keys for derived tables are created. sql/mysqld.cc: Added internal_tmp_table_max_key_length and internal_tmp_table_max_key_segments to be used to limit how keys for derived tables are created. sql/share/errmsg.txt: Added new error message for internal errors sql/sql_select.cc: Give error if we try to create a wrong key (this error should never happen) Honor unique/not unique when creating keys for internal tempory tables. storage/maria/ha_maria.cc: Added change_table_ptr() to ensure that external_ref points always to the correct table. (Not having this caused an assert in the included test) storage/maria/ha_maria.h: Added change_table_ptr() to ensure that external_ref points always to the correct table. storage/maria/ma_check.c: Fixed bug in Duplicate key error printing (now row position is printed correctly) storage/maria/ma_create.c: maria_max_key_length() -> _ma_max_key_length() storage/maria/ma_info.c: Added extern function maria_max_key_length() to calculate the max key length based on current block size. storage/maria/ma_open.c: maria_max_key_length() -> _ma_max_key_length() storage/maria/maria_def.h: maria_max_key_length() -> _ma_max_key_length() storage/myisam/ha_myisam.cc: Added change_table_ptr() to ensure that external_ref points always to the correct table. (Not having this caused an assert in the included test) storage/myisam/ha_myisam.h: Added change_table_ptr() to ensure that external_ref points always to the correct table.
315 lines
7.4 KiB
Text
315 lines
7.4 KiB
Text
drop table if exists t1,t2,t3;
|
|
create table t1(a int);
|
|
insert into t1 values(1);
|
|
ERROR at line 9: DELIMITER must be followed by a 'delimiter' character or string
|
|
|
|
Test default delimiter ;
|
|
a
|
|
1
|
|
|
|
Test delimiter without arg
|
|
|
|
Test delimiter :
|
|
a
|
|
1
|
|
|
|
Test delimiter :
|
|
a
|
|
1
|
|
|
|
Test delimiter :;
|
|
a
|
|
1
|
|
|
|
Test delimiter //
|
|
a
|
|
1
|
|
|
|
Test delimiter MySQL
|
|
a
|
|
1
|
|
|
|
Test delimiter delimiter
|
|
a
|
|
1
|
|
Tables_in_test
|
|
t1
|
|
t2
|
|
t3
|
|
Tables_in_test
|
|
t1
|
|
_
|
|
Test delimiter : from command line
|
|
a
|
|
1
|
|
_
|
|
Test delimiter :; from command line
|
|
a
|
|
1
|
|
_
|
|
Test 'go' command(vertical output) G
|
|
*************************** 1. row ***************************
|
|
a: 1
|
|
_
|
|
Test 'go' command g
|
|
a
|
|
1
|
|
drop table t1;
|
|
create table t1(a int);
|
|
lock tables t1 write;
|
|
database()
|
|
test
|
|
unlock tables;
|
|
drop table t1;
|
|
+----------------------+------------+--------+
|
|
| concat('>',col1,'<') | col2 | col3 |
|
|
+----------------------+------------+--------+
|
|
| >a < | b | 123421 |
|
|
| >a < | 0123456789 | 4 |
|
|
| >abcd< | | 4 |
|
|
+----------------------+------------+--------+
|
|
+-------------------+
|
|
| __tañgè Ñãmé |
|
|
+-------------------+
|
|
| John Doe |
|
|
+-------------------+
|
|
+-------------------+
|
|
| John Doe |
|
|
+-------------------+
|
|
| __tañgè Ñãmé |
|
|
+-------------------+
|
|
+------+------+---------------------------+
|
|
| i | j | k |
|
|
+------+------+---------------------------+
|
|
| 1 | NULL | NULL |
|
|
| NULL | NULL | <-----------------------> |
|
|
| NULL | NULL | <----- |
|
|
| NULL | NULL | Τη γλώσσα |
|
|
| NULL | NULL | ᛖᚴ ᚷᛖᛏ |
|
|
+------+------+---------------------------+
|
|
i j k
|
|
NULL 1 NULL
|
|
Field Type Null Key Default Extra
|
|
i int(11) YES NULL
|
|
j int(11) NO NULL
|
|
k int(11) YES NULL
|
|
+------+---+------+
|
|
| i | j | k |
|
|
+------+---+------+
|
|
| NULL | 1 | NULL |
|
|
+------+---+------+
|
|
+-------+---------+------+-----+---------+-------+
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
+-------+---------+------+-----+---------+-------+
|
|
| i | int(11) | YES | | NULL | |
|
|
| j | int(11) | NO | | NULL | |
|
|
| k | int(11) | YES | | NULL | |
|
|
+-------+---------+------+-----+---------+-------+
|
|
i s1
|
|
1 x
|
|
2 NULL
|
|
3
|
|
+------+------+
|
|
| i | s1 |
|
|
+------+------+
|
|
| 1 | x |
|
|
| 2 | NULL |
|
|
| 3 | |
|
|
+------+------+
|
|
unhex('zz')
|
|
NULL
|
|
+-------------+
|
|
| unhex('zz') |
|
|
+-------------+
|
|
| NULL |
|
|
+-------------+
|
|
create table t1(a int, b varchar(255), c int);
|
|
Field Type Null Key Default Extra
|
|
a int(11) YES NULL
|
|
b varchar(255) YES NULL
|
|
c int(11) YES NULL
|
|
Field Type Null Key Default Extra
|
|
a int(11) YES NULL
|
|
b varchar(255) YES NULL
|
|
c int(11) YES NULL
|
|
drop table t1;
|
|
1
|
|
1
|
|
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
|
|
ERROR at line 1: USE must be followed by a database name
|
|
1 +1
|
|
2
|
|
1 +1
|
|
2
|
|
1 +1
|
|
2
|
|
1 +1
|
|
2
|
|
\
|
|
\\
|
|
';
|
|
';
|
|
create table t17583 (a int);
|
|
insert into t17583 (a) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|
insert into t17583 select a from t17583;
|
|
insert into t17583 select a from t17583;
|
|
insert into t17583 select a from t17583;
|
|
insert into t17583 select a from t17583;
|
|
insert into t17583 select a from t17583;
|
|
insert into t17583 select a from t17583;
|
|
insert into t17583 select a from t17583;
|
|
select count(*) from t17583;
|
|
count(*)
|
|
1280
|
|
drop table t17583;
|
|
Test connect without db- or host-name => reconnect
|
|
Test connect with dbname only => new dbname, old hostname
|
|
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'connecttest' at line 1
|
|
Test connect with _invalid_ dbname only => new invalid dbname, old hostname
|
|
ERROR 1049 (42000) at line 1: Unknown database 'invalid'
|
|
ERROR 1049 (42000) at line 1: Unknown database 'invalid'
|
|
Test connect with dbname + hostname
|
|
Test connect with dbname + _invalid_ hostname
|
|
ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
|
|
ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
|
|
The commands reported in the bug report
|
|
ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyril has found a bug :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
|
|
Too long dbname
|
|
ERROR 1102 (42000) at line 1: Incorrect database name 'test_really_long_dbnamexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
|
Too long hostname
|
|
ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'cyrils_superlonghostnameXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' (errno)
|
|
1
|
|
1
|
|
ERROR at line 1: DELIMITER cannot contain a backslash character
|
|
ERROR at line 1: DELIMITER cannot contain a backslash character
|
|
1
|
|
1
|
|
1
|
|
1
|
|
This is a file starting with UTF8 BOM 0xEFBBBF
|
|
This is a file starting with UTF8 BOM 0xEFBBBF
|
|
delimiter
|
|
1
|
|
2
|
|
2
|
|
2
|
|
2
|
|
@z:='1' @z=database()
|
|
1 NULL
|
|
1
|
|
1
|
|
1
|
|
1
|
|
COUNT (*)
|
|
1
|
|
COUNT (*)
|
|
1
|
|
COUNT (*)
|
|
1
|
|
ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (errno)
|
|
End of 5.0 tests
|
|
WARNING: --server-arg option not supported in this configuration.
|
|
Warning (Code 1286): Unknown table engine 'nonexistent'
|
|
Warning (Code 1266): Using storage engine MyISAM for table 't2'
|
|
Warning (Code 1286): Unknown table engine 'nonexistent2'
|
|
Warning (Code 1266): Using storage engine MyISAM for table 't2'
|
|
Error (Code 1050): Table 't2' already exists
|
|
drop tables t1, t2;
|
|
<TABLE BORDER=1><TR><TH><</TH></TR><TR><TD>< & ></TD></TR></TABLE>create table t1 (a char(5));
|
|
insert into t1 values ('\0b\0');
|
|
a
|
|
\0b\0
|
|
a
|
|
\0b\0
|
|
+------+
|
|
| a |
|
|
+------+
|
|
| b |
|
|
+------+
|
|
*************************** 1. row ***************************
|
|
a: b
|
|
<TABLE BORDER=1><TR><TH>a</TH></TR><TR><TD> b </TD></TR></TABLE><?xml version="1.0"?>
|
|
|
|
<resultset statement="select a from t1
|
|
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
<row>
|
|
<field name="a"> b </field>
|
|
</row>
|
|
</resultset>
|
|
drop table t1;
|
|
|
|
Bug #47147: mysql client option --skip-column-names does not apply to vertical output
|
|
|
|
*************************** 1. row ***************************
|
|
1
|
|
|
|
#
|
|
# Bug #54899: --one-database option cannot handle DROP/CREATE DATABASE
|
|
# commands.
|
|
#
|
|
CREATE DATABASE connected_db;
|
|
USE connected_db;
|
|
SHOW TABLES;
|
|
Tables_in_connected_db
|
|
table_in_connected_db
|
|
DROP DATABASE connected_db;
|
|
|
|
#
|
|
# Testing --one-database option
|
|
#
|
|
CREATE DATABASE connected_db;
|
|
SHOW TABLES IN connected_db;
|
|
Tables_in_connected_db
|
|
t1
|
|
SHOW TABLES IN test;
|
|
Tables_in_test
|
|
t1
|
|
USE test;
|
|
DROP TABLE t1;
|
|
DROP DATABASE connected_db;
|
|
|
|
SHOW TABLES IN test;
|
|
Tables_in_test
|
|
SHOW TABLES IN test1;
|
|
Tables_in_test1
|
|
DROP DATABASE test1;
|
|
|
|
#
|
|
# Checking --one-database option followed by the execution of
|
|
# connect command.
|
|
#
|
|
CREATE DATABASE connected_db;
|
|
SHOW TABLES IN connected_db;
|
|
Tables_in_connected_db
|
|
t1
|
|
t2
|
|
SHOW TABLES IN test;
|
|
Tables_in_test
|
|
t1
|
|
t2
|
|
DROP TABLE test.t1;
|
|
DROP TABLE test.t2;
|
|
DROP DATABASE connected_db;
|
|
|
|
#
|
|
# Checking --one-database option with no database specified
|
|
# at command-line.
|
|
#
|
|
SHOW TABLES IN test;
|
|
Tables_in_test
|
|
|
|
#
|
|
# Checking --one-database option with non_existent_db
|
|
# specified with USE command
|
|
#
|
|
CREATE DATABASE connected_db;
|
|
SHOW TABLES IN connected_db;
|
|
Tables_in_connected_db
|
|
table_in_connected_db
|
|
|
|
SHOW TABLES IN connected_db;
|
|
Tables_in_connected_db
|
|
table_in_connected_db
|
|
DROP DATABASE connected_db;
|
|
|
|
End of tests
|