Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
8df4bf22
Commit
8df4bf22
authored
Feb 10, 2011
by
Georgi Kodinov
Browse files
Options
Browse Files
Download
Plain Diff
merge mysql-5.5->mysql-5.5-security
parents
7629dad0
42a48b80
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
468 additions
and
48 deletions
+468
-48
client/readline.cc
client/readline.cc
+2
-0
mysql-test/collections/default.release
mysql-test/collections/default.release
+11
-0
mysql-test/collections/test-bt
mysql-test/collections/test-bt
+0
-10
mysql-test/collections/test-bt-debug
mysql-test/collections/test-bt-debug
+0
-1
mysql-test/collections/test-bt-debug-fast
mysql-test/collections/test-bt-debug-fast
+0
-0
mysql-test/collections/test-bt-fast
mysql-test/collections/test-bt-fast
+0
-2
mysql-test/include/ctype_numconv.inc
mysql-test/include/ctype_numconv.inc
+26
-0
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+1
-1
mysql-test/r/ctype_binary.result
mysql-test/r/ctype_binary.result
+40
-0
mysql-test/r/ctype_cp1251.result
mysql-test/r/ctype_cp1251.result
+40
-0
mysql-test/r/ctype_latin1.result
mysql-test/r/ctype_latin1.result
+40
-0
mysql-test/r/ctype_ucs.result
mysql-test/r/ctype_ucs.result
+40
-0
mysql-test/r/ctype_utf8.result
mysql-test/r/ctype_utf8.result
+40
-0
mysql-test/r/mysqld--defaults-file.result
mysql-test/r/mysqld--defaults-file.result
+12
-0
mysql-test/r/variables.result
mysql-test/r/variables.result
+22
-0
mysql-test/t/mysqld--defaults-file.test
mysql-test/t/mysqld--defaults-file.test
+47
-0
mysql-test/t/variables.test
mysql-test/t/variables.test
+26
-0
mysys/charset.c
mysys/charset.c
+13
-7
mysys/default.c
mysys/default.c
+1
-1
mysys/mf_format.c
mysys/mf_format.c
+2
-0
plugin/auth/auth_socket.c
plugin/auth/auth_socket.c
+1
-1
sql/item_strfunc.cc
sql/item_strfunc.cc
+7
-7
sql/item_strfunc.h
sql/item_strfunc.h
+5
-2
sql/item_timefunc.cc
sql/item_timefunc.cc
+16
-3
sql/item_timefunc.h
sql/item_timefunc.h
+18
-2
support-files/mysql.spec.sh
support-files/mysql.spec.sh
+58
-11
No files found.
client/readline.cc
View file @
8df4bf22
...
...
@@ -33,10 +33,12 @@ LINE_BUFFER *batch_readline_init(ulong max_size,FILE *file)
LINE_BUFFER
*
line_buff
;
MY_STAT
input_file_stat
;
#ifndef __WIN__
if
(
my_fstat
(
fileno
(
file
),
&
input_file_stat
,
MYF
(
MY_WME
))
||
MY_S_ISDIR
(
input_file_stat
.
st_mode
)
||
MY_S_ISBLK
(
input_file_stat
.
st_mode
))
return
0
;
#endif
if
(
!
(
line_buff
=
(
LINE_BUFFER
*
)
my_malloc
(
sizeof
(
*
line_buff
),
MYF
(
MY_WME
|
MY_ZEROFILL
))))
...
...
mysql-test/collections/default.release
0 → 100644
View file @
8df4bf22
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=debug --vardir=var-debug --skip-ndbcluster --skip-rpl --report-features --debug-server
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=normal --vardir=var-normal --skip-ndbcluster --report-features
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=ps --vardir=var-ps --skip-ndbcluster --ps-protocol
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs1+ps --vardir=var-funcs_1_ps --suite=funcs_1 --ps-protocol
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=funcs2 --vardir=var-funcs2 --suite=funcs_2
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=partitions --vardir=var-parts --suite=parts
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=stress --vardir=var-stress --suite=stress
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=jp --vardir=var-jp --suite=jp
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-embedded --embedded-server --skip-rpl --skip-ndbcluster
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=nist --vardir=var-nist --suite=nist
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=nist+ps --vardir=var-nist_ps --suite=nist --ps-protocol
mysql-test/collections/test-bt
deleted
100644 → 0
View file @
7629dad0
perl mysql-test-run.pl --force --timer --parallel=auto --comment=normal --skip-ndbcluster --report-features --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=ps --skip-ndbcluster --ps-protocol --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=funcs1+ps --suite=funcs_1 --ps-protocol --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=funcs2 --suite=funcs_2 --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=partitions --suite=parts --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=stress --suite=stress --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=jp --suite=jp --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=embedded --embedded-server --skip-rpl --skip-ndbcluster --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=nist --suite=nist --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=nist+ps --suite=nist --ps-protocol --experimental=collections/default.experimental
mysql-test/collections/test-bt-debug
deleted
100644 → 0
View file @
7629dad0
perl mysql-test-run.pl --force --timer --parallel=auto --comment=debug --skip-ndbcluster --skip-rpl --report-features --experimental=collections/default.experimental
mysql-test/collections/test-bt-debug-fast
deleted
100644 → 0
View file @
7629dad0
mysql-test/collections/test-bt-fast
deleted
100644 → 0
View file @
7629dad0
perl mysql-test-run.pl --force --timer --parallel=auto --comment=ps --skip-ndbcluster --ps-protocol --report-features --experimental=collections/default.experimental
perl mysql-test-run.pl --force --timer --parallel=auto --comment=stress --suite=stress --experimental=collections/default.experimental
mysql-test/include/ctype_numconv.inc
View file @
8df4bf22
...
...
@@ -1737,6 +1737,32 @@ EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01'
DROP
TABLE
t1
;
--
echo
#
--
echo
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
--
echo
#
SELECT
@@
collation_connection
,
@@
character_set_results
;
CREATE
TABLE
t1
AS
SELECT
DATE_SUB
(
'2007-08-03'
,
INTERVAL
1
MINUTE
)
AS
field_str1
,
DATE_SUB
(
'2007-08-03 17:33:00'
,
INTERVAL
1
MINUTE
)
AS
field1_str2
,
DATE_SUB
(
DATE
(
'2007-08-03'
),
INTERVAL
1
DAY
)
AS
field_date
,
DATE_SUB
(
CAST
(
'2007-08-03 17:33:00'
AS
DATETIME
),
INTERVAL
1
MINUTE
)
AS
field_datetime
;
SHOW
CREATE
TABLE
t1
;
DROP
TABLE
t1
;
--
enable_metadata
SELECT
DATE_SUB
(
'2007-08-03'
,
INTERVAL
1
DAY
)
AS
field_str1
,
DATE_SUB
(
'2007-08-03 17:33:00'
,
INTERVAL
1
MINUTE
)
AS
field1_str2
,
DATE_SUB
(
DATE
(
'2007-08-03'
),
INTERVAL
1
DAY
)
AS
field_date
,
DATE_SUB
(
CAST
(
'2007-08-03 17:33:00'
AS
DATETIME
),
INTERVAL
1
MINUTE
)
AS
field_datetime
;
--
disable_metadata
SELECT
HEX
(
DATE_SUB
(
'2007-08-03'
,
INTERVAL
1
MINUTE
))
AS
field_str1
,
HEX
(
DATE_SUB
(
'2007-08-03 17:33:00'
,
INTERVAL
1
MINUTE
))
AS
field1_str2
,
HEX
(
DATE_SUB
(
DATE
(
'2007-08-03'
),
INTERVAL
1
DAY
))
AS
field_date
,
HEX
(
DATE_SUB
(
CAST
(
'2007-08-03 17:33:00'
AS
DATETIME
),
INTERVAL
1
MINUTE
))
AS
field_datetime
;
--
echo
#
--
echo
# Bug#52159 returning time type from function and empty left join causes debug assertion
--
echo
#
...
...
mysql-test/mysql-test-run.pl
View file @
8df4bf22
...
...
@@ -2022,7 +2022,7 @@ sub read_plugin_defs($)
# Need to check if we will be running mysqld-debug
if
(
$opt_debug_server
)
{
$running_debug
=
1
if
find_mysqld
(
$basedir
)
=~
/
-debug$
/
;
$running_debug
=
1
if
find_mysqld
(
$basedir
)
=~
/
mysqld-debug
/
;
}
while
(
<
PLUGDEF
>
)
{
...
...
mysql-test/r/ctype_binary.result
View file @
8df4bf22
...
...
@@ -2767,6 +2767,46 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using where
DROP TABLE t1;
#
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
binary binary
CREATE TABLE t1 AS
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`field_str1` varbinary(29) DEFAULT NULL,
`field1_str2` varbinary(29) DEFAULT NULL,
`field_date` date DEFAULT NULL,
`field_datetime` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def field_str1 254 29 10 Y 128 31 63
def field1_str2 254 29 19 Y 128 31 63
def field_date 10 29 10 Y 128 31 63
def field_datetime 12 29 19 Y 128 31 63
field_str1 field1_str2 field_date field_datetime
2007-08-02 2007-08-03 17:32:00 2007-08-02 2007-08-03 17:32:00
SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,
HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2,
HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date,
HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime;
field_str1 field1_str2 field_date field_datetime
323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030
#
# Bug#52159 returning time type from function and empty left join causes debug assertion
#
CREATE FUNCTION f1() RETURNS TIME RETURN 1;
...
...
mysql-test/r/ctype_cp1251.result
View file @
8df4bf22
...
...
@@ -3157,6 +3157,46 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using where
DROP TABLE t1;
#
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
cp1251_general_ci cp1251
CREATE TABLE t1 AS
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`field_str1` varchar(29) CHARACTER SET cp1251 DEFAULT NULL,
`field1_str2` varchar(29) CHARACTER SET cp1251 DEFAULT NULL,
`field_date` date DEFAULT NULL,
`field_datetime` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def field_str1 254 29 10 Y 0 31 51
def field1_str2 254 29 19 Y 0 31 51
def field_date 10 29 10 Y 128 31 63
def field_datetime 12 29 19 Y 128 31 63
field_str1 field1_str2 field_date field_datetime
2007-08-02 2007-08-03 17:32:00 2007-08-02 2007-08-03 17:32:00
SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,
HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2,
HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date,
HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime;
field_str1 field1_str2 field_date field_datetime
323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030
#
# Bug#52159 returning time type from function and empty left join causes debug assertion
#
CREATE FUNCTION f1() RETURNS TIME RETURN 1;
...
...
mysql-test/r/ctype_latin1.result
View file @
8df4bf22
...
...
@@ -3186,6 +3186,46 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using where
DROP TABLE t1;
#
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
latin1_swedish_ci latin1
CREATE TABLE t1 AS
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`field_str1` varchar(29) DEFAULT NULL,
`field1_str2` varchar(29) DEFAULT NULL,
`field_date` date DEFAULT NULL,
`field_datetime` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def field_str1 254 29 10 Y 0 31 8
def field1_str2 254 29 19 Y 0 31 8
def field_date 10 29 10 Y 128 31 63
def field_datetime 12 29 19 Y 128 31 63
field_str1 field1_str2 field_date field_datetime
2007-08-02 2007-08-03 17:32:00 2007-08-02 2007-08-03 17:32:00
SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,
HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2,
HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date,
HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime;
field_str1 field1_str2 field_date field_datetime
323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030
#
# Bug#52159 returning time type from function and empty left join causes debug assertion
#
CREATE FUNCTION f1() RETURNS TIME RETURN 1;
...
...
mysql-test/r/ctype_ucs.result
View file @
8df4bf22
...
...
@@ -4009,6 +4009,46 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
DROP TABLE t1;
#
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
ucs2_general_ci latin1
CREATE TABLE t1 AS
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`field_str1` varchar(29) CHARACTER SET ucs2 DEFAULT NULL,
`field1_str2` varchar(29) CHARACTER SET ucs2 DEFAULT NULL,
`field_date` date DEFAULT NULL,
`field_datetime` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def field_str1 254 29 10 Y 0 31 8
def field1_str2 254 29 19 Y 0 31 8
def field_date 10 29 10 Y 128 31 63
def field_datetime 12 29 19 Y 128 31 63
field_str1 field1_str2 field_date field_datetime
2007-08-02 2007-08-03 17:32:00 2007-08-02 2007-08-03 17:32:00
SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,
HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2,
HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date,
HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime;
field_str1 field1_str2 field_date field_datetime
0032003000300037002D00300038002D00300032002000320033003A00350039003A00300030 0032003000300037002D00300038002D00300033002000310037003A00330032003A00300030 323030372D30382D3032 323030372D30382D30332031373A33323A3030
#
# Bug#52159 returning time type from function and empty left join causes debug assertion
#
CREATE FUNCTION f1() RETURNS TIME RETURN 1;
...
...
mysql-test/r/ctype_utf8.result
View file @
8df4bf22
...
...
@@ -4898,6 +4898,46 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range date_column date_column 9 NULL 1 Using where
DROP TABLE t1;
#
# Bug #31384 DATE_ADD() and DATE_SUB() return binary data
#
SELECT @@collation_connection, @@character_set_results;
@@collation_connection @@character_set_results
utf8_general_ci utf8
CREATE TABLE t1 AS
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`field_str1` varchar(29) CHARACTER SET utf8 DEFAULT NULL,
`field1_str2` varchar(29) CHARACTER SET utf8 DEFAULT NULL,
`field_date` date DEFAULT NULL,
`field_datetime` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
SELECT
DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1,
DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2,
DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date,
DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def field_str1 254 87 10 Y 0 31 33
def field1_str2 254 87 19 Y 0 31 33
def field_date 10 29 10 Y 128 31 63
def field_datetime 12 29 19 Y 128 31 63
field_str1 field1_str2 field_date field_datetime
2007-08-02 2007-08-03 17:32:00 2007-08-02 2007-08-03 17:32:00
SELECT
HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1,
HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2,
HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date,
HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime;
field_str1 field1_str2 field_date field_datetime
323030372D30382D30322032333A35393A3030 323030372D30382D30332031373A33323A3030 323030372D30382D3032 323030372D30382D30332031373A33323A3030
#
# Bug#52159 returning time type from function and empty left join causes debug assertion
#
CREATE FUNCTION f1() RETURNS TIME RETURN 1;
...
...
mysql-test/r/mysqld--defaults-file.result
0 → 100644
View file @
8df4bf22
Could not open required defaults file: /path/with/no/extension
Fatal error in defaults handling. Program aborted
Could not open required defaults file: /path/with.ext
Fatal error in defaults handling. Program aborted
Could not open required defaults file: MYSQL_TEST_DIR/relative/path/with.ext
Fatal error in defaults handling. Program aborted
Could not open required defaults file: MYSQL_TEST_DIR/relative/path/without/extension
Fatal error in defaults handling. Program aborted
Could not open required defaults file: MYSQL_TEST_DIR/with.ext
Fatal error in defaults handling. Program aborted
Could not open required defaults file: MYSQL_TEST_DIR/no_extension
Fatal error in defaults handling. Program aborted
mysql-test/r/variables.result
View file @
8df4bf22
...
...
@@ -1732,3 +1732,25 @@ set @@session.autocommit=t1_min(), @@session.autocommit=t1_max(),
drop table t1;
drop function t1_min;
drop function t1_max;
#
# Bug #59884: setting charset to 2048 crashes
#
set session character_set_results = 2048;
ERROR 42000: Unknown character set: '2048'
set session character_set_client=2048;
ERROR 42000: Unknown character set: '2048'
set session character_set_connection=2048;
ERROR 42000: Unknown character set: '2048'
set session character_set_server=2048;
ERROR 42000: Unknown character set: '2048'
set session collation_server=2048;
ERROR HY000: Unknown collation: '2048'
set session character_set_filesystem=2048;
ERROR 42000: Unknown character set: '2048'
set session character_set_database=2048;
ERROR 42000: Unknown character set: '2048'
set session collation_connection=2048;
ERROR HY000: Unknown collation: '2048'
set session collation_database=2048;
ERROR HY000: Unknown collation: '2048'
End of 5.5 tests
mysql-test/t/mysqld--defaults-file.test
0 → 100644
View file @
8df4bf22
# BUG#58455
# Starting mysqld with defaults file without extension cause
# segmentation fault
source
include
/
not_embedded
.
inc
;
source
include
/
not_windows
.
inc
;
# We need to use a plain "mysqld" without any other options to trigger
# the bug. In particular, it seems that passing --bootstrap does not
# trigger the bug. To do that, we extract the "command name" from the
# MYSQLD_BOOTSTRAP_CMD variable and store that in a file, which we
# then load into the test case.
perl
;
my
(
$mysqld
)
=
split
" "
,
$ENV
{
MYSQLD_BOOTSTRAP_CMD
};
open
(
FILE
,
">"
,
"
$ENV
{
MYSQL_TMP_DIR
}
/mysqld.inc"
)
or
die
;
print
FILE
"let
\$
MYSQLD=
$mysqld
;
\n
"
;
close
FILE
;
EOF
source
$MYSQL_TMP_DIR
/
mysqld
.
inc
;
# All these tests refer to configuration files that do not exist
--
error
1
exec
$MYSQLD
--
defaults
-
file
=/
path
/
with
/
no
/
extension
--
print
-
defaults
2
>&
1
;
--
error
1
exec
$MYSQLD
--
defaults
-
file
=/
path
/
with
.
ext
--
print
-
defaults
2
>&
1
;
--
replace_result
$MYSQL_TEST_DIR
MYSQL_TEST_DIR
--
error
1
exec
$MYSQLD
--
defaults
-
file
=
relative
/
path
/
with
.
ext
--
print
-
defaults
2
>&
1
;
--
replace_result
$MYSQL_TEST_DIR
MYSQL_TEST_DIR
--
error
1
exec
$MYSQLD
--
defaults
-
file
=
relative
/
path
/
without
/
extension
--
print
-
defaults
2
>&
1
;
--
replace_result
$MYSQL_TEST_DIR
MYSQL_TEST_DIR
--
error
1
exec
$MYSQLD
--
defaults
-
file
=
with
.
ext
--
print
-
defaults
2
>&
1
;
--
replace_result
$MYSQL_TEST_DIR
MYSQL_TEST_DIR
--
error
1
exec
$MYSQLD
--
defaults
-
file
=
no_extension
--
print
-
defaults
2
>&
1
;
remove_file
$MYSQL_TMP_DIR
/
mysqld
.
inc
;
mysql-test/t/variables.test
View file @
8df4bf22
...
...
@@ -1476,3 +1476,29 @@ drop function t1_max;
###########################################################################
--
echo
#
--
echo
# Bug #59884: setting charset to 2048 crashes
--
echo
#
--
error
ER_UNKNOWN_CHARACTER_SET
set
session
character_set_results
=
2048
;
--
error
ER_UNKNOWN_CHARACTER_SET
set
session
character_set_client
=
2048
;
--
error
ER_UNKNOWN_CHARACTER_SET
set
session
character_set_connection
=
2048
;
--
error
ER_UNKNOWN_CHARACTER_SET
set
session
character_set_server
=
2048
;
--
error
ER_UNKNOWN_COLLATION
set
session
collation_server
=
2048
;
--
error
ER_UNKNOWN_CHARACTER_SET
set
session
character_set_filesystem
=
2048
;
--
error
ER_UNKNOWN_CHARACTER_SET
set
session
character_set_database
=
2048
;
--
error
ER_UNKNOWN_COLLATION
set
session
collation_connection
=
2048
;
--
error
ER_UNKNOWN_COLLATION
set
session
collation_database
=
2048
;
--
echo
End
of
5.5
tests
mysys/charset.c
View file @
8df4bf22
...
...
@@ -419,6 +419,7 @@ CHARSET_INFO *default_charset_info = &my_charset_latin1;
void
add_compiled_collation
(
CHARSET_INFO
*
cs
)
{
DBUG_ASSERT
(
cs
->
number
<
array_elements
(
all_charsets
));
all_charsets
[
cs
->
number
]
=
cs
;
cs
->
state
|=
MY_CS_AVAILABLE
;
}
...
...
@@ -529,14 +530,17 @@ uint get_charset_number(const char *charset_name, uint cs_flags)
const
char
*
get_charset_name
(
uint
charset_number
)
{
CHARSET_INFO
*
cs
;
my_pthread_once
(
&
charsets_initialized
,
init_available_charsets
);
cs
=
all_charsets
[
charset_number
];
if
(
cs
&&
(
cs
->
number
==
charset_number
)
&&
cs
->
name
)
return
(
char
*
)
cs
->
name
;
if
(
charset_number
<
array_elements
(
all_charsets
))
{
CHARSET_INFO
*
cs
=
all_charsets
[
charset_number
];
if
(
cs
&&
(
cs
->
number
==
charset_number
)
&&
cs
->
name
)
return
(
char
*
)
cs
->
name
;
}
return
(
char
*
)
"?"
;
/* this mimics find_type() */
return
"?"
;
/* this mimics find_type() */
}
...
...
@@ -545,6 +549,8 @@ static CHARSET_INFO *get_internal_charset(uint cs_number, myf flags)
char
buf
[
FN_REFLEN
];
CHARSET_INFO
*
cs
;
DBUG_ASSERT
(
cs_number
<
array_elements
(
all_charsets
));
if
((
cs
=
all_charsets
[
cs_number
]))
{
if
(
cs
->
state
&
MY_CS_READY
)
/* if CS is already initialized */
...
...
@@ -589,8 +595,8 @@ CHARSET_INFO *get_charset(uint cs_number, myf flags)
return
default_charset_info
;
my_pthread_once
(
&
charsets_initialized
,
init_available_charsets
);
if
(
!
cs_number
||
cs_number
>
array_elements
(
all_charsets
))
if
(
cs_number
>=
array_elements
(
all_charsets
))
return
NULL
;
cs
=
get_internal_charset
(
cs_number
,
flags
);
...
...
mysys/default.c
View file @
8df4bf22
...
...
@@ -179,7 +179,7 @@ fn_expand(const char *filename, char *result_buf)
if
(
my_getwd
(
dir
,
sizeof
(
dir
),
MYF
(
0
)))
DBUG_RETURN
(
3
);
DBUG_PRINT
(
"debug"
,
(
"dir: %s"
,
dir
));
if
(
fn_format
(
result_buf
,
filename
,
dir
,
NULL
,
flags
)
==
NULL
)
if
(
fn_format
(
result_buf
,
filename
,
dir
,
""
,
flags
)
==
NULL
)
DBUG_RETURN
(
2
);
DBUG_PRINT
(
"return"
,
(
"result: %s"
,
result_buf
));
DBUG_RETURN
(
0
);
...
...
mysys/mf_format.c
View file @
8df4bf22
...
...
@@ -31,6 +31,8 @@ char * fn_format(char * to, const char *name, const char *dir,
reg1
size_t
length
;
size_t
dev_length
;
DBUG_ENTER
(
"fn_format"
);
DBUG_ASSERT
(
name
!=
NULL
);
DBUG_ASSERT
(
extension
!=
NULL
);
DBUG_PRINT
(
"enter"
,(
"name: %s dir: %s extension: %s flag: %d"
,
name
,
dir
,
extension
,
flag
));
...
...
plugin/auth/auth_socket.c
View file @
8df4bf22
...
...
@@ -79,7 +79,7 @@ mysql_declare_plugin(socket_auth)
{
MYSQL_AUTHENTICATION_PLUGIN
,
&
socket_auth_handler
,
"
socket_peercred
"
,
"
auth_socket
"
,
"Sergei Golubchik"
,
"Unix Socket based authentication"
,
PLUGIN_LICENSE_GPL
,
...
...
sql/item_strfunc.cc
View file @
8df4bf22
...
...
@@ -70,7 +70,7 @@ String my_empty_string("",default_charset_info);
Normally conversion does not happen, and val_str_ascii() is immediately
returned instead.
*/
String
*
Item_str_
ascii_func
::
val_str
(
String
*
str
)
String
*
Item_str_
func
::
val_str_from_val_str_ascii
(
String
*
str
,
String
*
str2
)
{
DBUG_ASSERT
(
fixed
==
1
);
...
...
@@ -82,19 +82,19 @@ String *Item_str_ascii_func::val_str(String *str)
return
res
;
}
DBUG_ASSERT
(
str
!=
&
ascii_buf
);
DBUG_ASSERT
(
str
!=
str2
);
uint
errors
;
String
*
res
=
val_str_ascii
(
&
ascii_buf
);
String
*
res
=
val_str_ascii
(
str
);
if
(
!
res
)
return
0
;
if
((
null_value
=
str
->
copy
(
res
->
ptr
(),
res
->
length
(),
&
my_charset_latin1
,
collation
.
collation
,
&
errors
)))
if
((
null_value
=
str
2
->
copy
(
res
->
ptr
(),
res
->
length
(),
&
my_charset_latin1
,
collation
.
collation
,
&
errors
)))
return
0
;
return
str
;
return
str
2
;
}
...
...
sql/item_strfunc.h
View file @
8df4bf22
...
...
@@ -51,6 +51,7 @@ public:
enum
Item_result
result_type
()
const
{
return
STRING_RESULT
;
}
void
left_right_max_length
();
bool
fix_fields
(
THD
*
thd
,
Item
**
ref
);
String
*
val_str_from_val_str_ascii
(
String
*
str
,
String
*
str2
);
};
...
...
@@ -66,8 +67,10 @@ public:
Item_str_ascii_func
(
Item
*
a
)
:
Item_str_func
(
a
)
{}
Item_str_ascii_func
(
Item
*
a
,
Item
*
b
)
:
Item_str_func
(
a
,
b
)
{}
Item_str_ascii_func
(
Item
*
a
,
Item
*
b
,
Item
*
c
)
:
Item_str_func
(
a
,
b
,
c
)
{}
String
*
val_str_convert_from_ascii
(
String
*
str
,
String
*
ascii_buf
);
String
*
val_str
(
String
*
str
);
String
*
val_str
(
String
*
str
)
{
return
val_str_from_val_str_ascii
(
str
,
&
ascii_buf
);
}
virtual
String
*
val_str_ascii
(
String
*
)
=
0
;
};
...
...
sql/item_timefunc.cc
View file @
8df4bf22
...
...
@@ -2205,8 +2205,6 @@ void Item_date_add_interval::fix_length_and_dec()
enum_field_types
arg0_field_type
;
maybe_null
=
1
;
fix_length_and_charset_datetime
(
MAX_DATETIME_FULL_WIDTH
);
value
.
alloc
(
max_length
);
/*
The field type for the result of an Item_date function is defined as
...
...
@@ -2231,6 +2229,21 @@ void Item_date_add_interval::fix_length_and_dec()
else
cached_field_type
=
MYSQL_TYPE_DATETIME
;
}
if
(
cached_field_type
==
MYSQL_TYPE_STRING
)
{
/* Behave as a usual string function when return type is VARCHAR. */
fix_length_and_charset
(
MAX_DATETIME_FULL_WIDTH
,
default_charset
());
}
else
{
/*
Follow the "Number-to-string conversion" rules as in WorkLog 2649
when return type is DATE or DATETIME.
*/
fix_length_and_charset_datetime
(
MAX_DATETIME_FULL_WIDTH
);
}
value
.
alloc
(
max_length
);
}
...
...
@@ -2253,7 +2266,7 @@ bool Item_date_add_interval::get_date(MYSQL_TIME *ltime, uint fuzzy_date)
}
String
*
Item_date_add_interval
::
val_str
(
String
*
str
)
String
*
Item_date_add_interval
::
val_str
_ascii
(
String
*
str
)
{
DBUG_ASSERT
(
fixed
==
1
);
MYSQL_TIME
ltime
;
...
...
sql/item_timefunc.h
View file @
8df4bf22
...
...
@@ -773,16 +773,32 @@ class Item_date_add_interval :public Item_date_func
{
String
value
;
enum_field_types
cached_field_type
;
String
ascii_buf
;
public:
const
interval_type
int_type
;
// keep it public
const
bool
date_sub_interval
;
// keep it public
Item_date_add_interval
(
Item
*
a
,
Item
*
b
,
interval_type
type_arg
,
bool
neg_arg
)
:
Item_date_func
(
a
,
b
),
int_type
(
type_arg
),
date_sub_interval
(
neg_arg
)
{}
String
*
val_str
(
String
*
);
String
*
val_str_ascii
(
String
*
str
);
String
*
val_str
(
String
*
str
)
{
return
val_str_from_val_str_ascii
(
str
,
&
ascii_buf
);
}
const
char
*
func_name
()
const
{
return
"date_add_interval"
;
}
void
fix_length_and_dec
();
enum_field_types
field_type
()
const
{
return
cached_field_type
;
}
CHARSET_INFO
*
charset_for_protocol
(
void
)
const
{
/*
DATE_ADD() can return DATE, DATETIME or VARCHAR depending on arguments.
Send using "binary" when DATE or DATETIME,
or using collation.collation when VARCHAR
(which was fixed from @collation_connection in fix_length_and_dec).
*/
DBUG_ASSERT
(
fixed
==
1
);
return
cached_field_type
==
MYSQL_TYPE_STRING
?
collation
.
collation
:
&
my_charset_bin
;
}
longlong
val_int
();
bool
get_date
(
MYSQL_TIME
*
res
,
uint
fuzzy_date
);
bool
eq
(
const
Item
*
item
,
bool
binary_cmp
)
const
;
...
...
support-files/mysql.spec.sh
View file @
8df4bf22
# Copyright (c) 2000, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 201
1
, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
...
...
@@ -523,10 +523,27 @@ rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1*
##############################################################################
%pre
-n
MySQL-server%
{
product_suffix
}
# This is the code running at the beginning of a RPM upgrade action,
# before replacing the old files with the new ones.
# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
mysql_datadir
=
%
{
mysqldatadir
}
# There are users who deviate from the default file system layout.
# Check local settings to support them.
if
[
-x
%
{
_bindir
}
/my_print_defaults
]
then
mysql_datadir
=
`
%
{
_bindir
}
/my_print_defaults server mysqld |
grep
'^--datadir='
|
sed
-n
's/--datadir=//p'
`
PID_FILE_PATT
=
`
%
{
_bindir
}
/my_print_defaults server mysqld |
grep
'^--pid-file='
|
sed
-n
's/--pid-file=//p'
`
fi
if
[
-z
"
$mysql_datadir
"
]
then
mysql_datadir
=
%
{
mysqldatadir
}
fi
if
[
-z
"
$PID_FILE_PATT
"
]
then
PID_FILE_PATT
=
"
$mysql_datadir
/*.pid"
fi
# Check if we can safely upgrade. An upgrade is only safe if it's from one
# of our RPMs in the same version family.
...
...
@@ -601,7 +618,7 @@ fi
# We assume that if there is exactly one ".pid" file,
# it contains the valid PID of a running MySQL server.
NR_PID_FILES
=
`
ls
$
mysql_datadir
/
*
.pid
2>/dev/null |
wc
-l
`
NR_PID_FILES
=
`
ls
$
PID_FILE_PATT
2>/dev/null |
wc
-l
`
case
$NR_PID_FILES
in
0
)
SERVER_TO_START
=
''
;;
# No "*.pid" file == no running server
1
)
SERVER_TO_START
=
'true'
;;
...
...
@@ -623,8 +640,8 @@ if [ -f $STATUS_FILE ]; then
echo
"before repeating the MySQL upgrade."
exit
1
elif
[
-n
"
$SEVERAL_PID_FILES
"
]
;
then
echo
"You
r MySQL directory '
$mysql_datadir
' has
more than one PID file:"
ls
-ld
$
mysql_datadir
/
*
.pid
echo
"You
have
more than one PID file:"
ls
-ld
$
PID_FILE_PATT
echo
"Please check which one (if any) corresponds to a running server"
echo
"and delete all others before repeating the MySQL upgrade."
exit
1
...
...
@@ -649,17 +666,17 @@ if [ -d $mysql_datadir ] ; then
if
[
-n
"
$SERVER_TO_START
"
]
;
then
# There is only one PID file, race possibility ignored
echo
"PID file:"
>>
$STATUS_FILE
ls
-l
$
mysql_datadir
/
*
.pid
>>
$STATUS_FILE
cat
$
mysql_datadir
/
*
.pid
>>
$STATUS_FILE
ls
-l
$
PID_FILE_PATT
>>
$STATUS_FILE
cat
$
PID_FILE_PATT
>>
$STATUS_FILE
echo
>>
$STATUS_FILE
echo
"Server process:"
>>
$STATUS_FILE
ps
-fp
`
cat
$
mysql_datadir
/
*
.pid
`
>>
$STATUS_FILE
ps
-fp
`
cat
$
PID_FILE_PATT
`
>>
$STATUS_FILE
echo
>>
$STATUS_FILE
echo
"SERVER_TO_START=
$SERVER_TO_START
"
>>
$STATUS_FILE
else
# Take a note we checked it ...
echo
"PID file:"
>>
$STATUS_FILE
ls
-l
$
mysql_datadir
/
*
.pid
>>
$STATUS_FILE
2>&1
ls
-l
$
PID_FILE_PATT
>>
$STATUS_FILE
2>&1
fi
fi
...
...
@@ -674,10 +691,22 @@ if [ -x %{_sysconfdir}/init.d/mysql ] ; then
fi
%post
-n
MySQL-server%
{
product_suffix
}
# This is the code running at the end of a RPM install or upgrade action,
# after the (new) files have been written.
# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
mysql_datadir
=
%
{
mysqldatadir
}
# There are users who deviate from the default file system layout.
# Check local settings to support them.
if
[
-x
%
{
_bindir
}
/my_print_defaults
]
then
mysql_datadir
=
`
%
{
_bindir
}
/my_print_defaults server mysqld |
grep
'^--datadir='
|
sed
-n
's/--datadir=//p'
`
fi
if
[
-z
"
$mysql_datadir
"
]
then
mysql_datadir
=
%
{
mysqldatadir
}
fi
NEW_VERSION
=
%
{
mysql_version
}
-%
{
release
}
STATUS_FILE
=
$mysql_datadir
/RPM_UPGRADE_MARKER
...
...
@@ -855,7 +884,17 @@ fi
# http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s02.html
# For all details of this code, see the "pre" and "post" sections.
mysql_datadir
=
%
{
mysqldatadir
}
# There are users who deviate from the default file system layout.
# Check local settings to support them.
if
[
-x
%
{
_bindir
}
/my_print_defaults
]
then
mysql_datadir
=
`
%
{
_bindir
}
/my_print_defaults server mysqld |
grep
'^--datadir='
|
sed
-n
's/--datadir=//p'
`
fi
if
[
-z
"
$mysql_datadir
"
]
then
mysql_datadir
=
%
{
mysqldatadir
}
fi
NEW_VERSION
=
%
{
mysql_version
}
-%
{
release
}
STATUS_FILE
=
$mysql_datadir
/RPM_UPGRADE_MARKER-LAST
# Note the difference!
STATUS_HISTORY
=
$mysql_datadir
/RPM_UPGRADE_HISTORY
...
...
@@ -1085,6 +1124,14 @@ echo "=====" >> $STATUS_HISTORY
# merging BK trees)
##############################################################################
%changelog
*
Thu Feb 09 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
- Fix bug#56581: If an installation deviates from the default file locations
(
"datadir"
and
"pid-file"
)
, the mechanism to detect a running server
(
on upgrade
)
should still work, and use these locations.
The problem was that the fix
for
bug#27072 did not check
for
local
settings.
*
Tue Nov 23 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
- EXCEPTIONS-CLIENT has been deleted, remove it from here too
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment