Fix error in string comparisons with CHAR(31) against the space-padding
of strings of unequal length. (Bug #8134)
This commit is contained in:
parent
bcf1cb0f23
commit
691cd6c50d
@ -36,3 +36,6 @@ hex(a) STRCMP(a,'a') STRCMP(a,'a ')
|
||||
6109 -1 -1
|
||||
61 0 0
|
||||
DROP TABLE t1;
|
||||
SELECT CHAR(31) = '', '' = CHAR(31);
|
||||
CHAR(31) = '' '' = CHAR(31)
|
||||
0 0
|
||||
|
@ -30,3 +30,6 @@ CREATE TABLE t1 (a char(10) not null);
|
||||
INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a ');
|
||||
SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
# Bug #8134: Comparison against CHAR(31) at end of string
|
||||
SELECT CHAR(31) = '', '' = CHAR(31);
|
||||
|
@ -153,7 +153,7 @@ int my_strnncollsp_simple(CHARSET_INFO * cs, const uchar *a, uint a_length,
|
||||
/* put shorter key in s */
|
||||
a_length= b_length;
|
||||
a= b;
|
||||
swap= -1; /* swap sign of result */
|
||||
swap= -1^1; /* swap sign of result */
|
||||
}
|
||||
for (end= a + a_length-length; a < end ; a++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user