mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
756b00d80a
CLIENT (CONTRIBUTION) DESCRIPTION: ============ Binary data should be printed as hex in the mysql client when the option binary-as-hex is enabled. ANALYSIS: ========= The fix deals only with mysql command line client. It does not change, at all, the data sent to the applications. Printing binary data as hex also allows to use the output in the where clause of the query. FIX: ==== A new option 'binary-as-hex' is introduced to print the binary contents as hex in the mysql client. The option is disabled by default. When the option is enabled, we convert the binary data to hex before printing the contents irrespective of whether it is in tabular, xml or html format.
76 lines
2.2 KiB
Text
76 lines
2.2 KiB
Text
# === Purpose ===
|
|
# The purpose of this test case is to make
|
|
# sure that the binary data in tables is printed
|
|
# as hex when the option binary-as-hex is enabled.
|
|
#
|
|
# === Related bugs and/or worklogs ===
|
|
# Bug #25340722 - PRINT BINARY DATA AS HEX IN THE MYSQL
|
|
# CLIENT (CONTRIBUTION)
|
|
#
|
|
|
|
# Save the initial number of concurrent sessions
|
|
--source include/count_sessions.inc
|
|
--source include/not_embedded.inc
|
|
|
|
USE test;
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1, t2;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE t1 (c1 TINYBLOB,
|
|
c2 BLOB,
|
|
c3 MEDIUMBLOB,
|
|
c4 LONGBLOB,
|
|
c5 TEXT,
|
|
c6 BIT(1),
|
|
c7 CHAR,
|
|
c8 VARCHAR(10),
|
|
c9 GEOMETRY) CHARACTER SET = binary;
|
|
|
|
SHOW CREATE TABLE t1;
|
|
|
|
INSERT INTO t1 VALUES ('tinyblob-text readable', 'blob-text readable',
|
|
'mediumblob-text readable', 'longblob-text readable',
|
|
'text readable', b'1', 'c', 'variable',
|
|
POINT(1, 1));
|
|
|
|
CREATE TABLE t2(id int, `col1` binary(10),`col2` blob);
|
|
|
|
SHOW CREATE TABLE t2;
|
|
|
|
INSERT INTO t2 VALUES (1, X'AB1234', X'123ABC'), (2, X'DE1234', X'123DEF');
|
|
|
|
--echo #Print the table contents when binary-as-hex option is off.
|
|
--replace_column 6 # 9 #
|
|
SELECT * FROM t1;
|
|
|
|
--replace_column 2 # 3 #
|
|
SELECT * FROM t2;
|
|
|
|
--echo #Print the table contents after turning on the binary-as-hex option
|
|
--echo
|
|
--echo #Print the table contents in tab format
|
|
--echo
|
|
--exec $MYSQL test --binary-as-hex -e "SELECT * FROM t1; SELECT * FROM t2;"
|
|
--echo
|
|
--echo #Print the table contents in table format
|
|
--echo
|
|
--exec $MYSQL test --binary-as-hex --table -e "SELECT * FROM t1; SELECT * FROM t2 WHERE col2=0x123ABC;"
|
|
--echo
|
|
--echo #Print the table contents vertically
|
|
--echo
|
|
--exec $MYSQL test --binary-as-hex --vertical -e "SELECT * FROM t1;"
|
|
--echo
|
|
--echo #Print the table contents in xml format
|
|
--echo
|
|
--exec $MYSQL test --binary-as-hex --xml -e "SELECT * FROM t1; SELECT * FROM t2;"
|
|
--echo
|
|
--echo #Print the table contents in html format
|
|
--echo
|
|
--exec $MYSQL test --binary-as-hex --html -e "SELECT * FROM t1; SELECT * FROM t2;"
|
|
|
|
#Cleanup
|
|
DROP TABLE t1, t2;
|
|
|
|
# Wait till all disconnects are completed
|
|
--source include/wait_until_count_sessions.inc
|