mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
77b8e5d9b5
Feature from Eric Bergen, CLA signed 2007-06-27. Adds new mysql client option "--auto-vertical-output", which causes the client to test whether a result table is too wide for the current window (where available) and emit vertical results in that case. Otherwise, it sends normal tabular results. client/client_priv.h: Add another enum value to client options, for automatic vertical output. client/mysql.cc: Add another command-line option, "auto-vertical-output". Add functions to get the terminal width and functions to get the widths of fields. Use them together to emit vertical output when some output table is too wide to fit in the terminal. If the terminal doesn't support reading its width, then assume 80-positions wide. mysql-test/r/mysql.result: Show that various select statements do work as expected. Wide tables become vertical and narrow ones do not. mysql-test/t/mysql.test: Show that various select statements do work as expected. These should be suitable for a wide range of window capabilities and sizes. Under extreme circumstances, the results could be arbitrary.
431 lines
7 KiB
Text
431 lines
7 KiB
Text
drop table if exists t1;
|
|
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
|
|
\
|
|
\\
|
|
';
|
|
';
|
|
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.
|
|
*************************** 1. row ***************************
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
1: 1
|
|
2: 2
|
|
3: 3
|
|
4: 4
|
|
5: 5
|
|
6: 6
|
|
7: 7
|
|
8: 8
|
|
9: 9
|
|
0: 0
|
|
+---+
|
|
| 1 |
|
|
+---+
|
|
| 1 |
|
|
+---+
|
|
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;
|
|
Variable_name Value
|
|
lc_messages ru_RU
|
|
<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;
|
|
|
|
End of tests
|