mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into magare.gmz:/home/kgeorge/mysql/autopush/B26281-5.0-opt sql/item_strfunc.cc: Auto merged mysql-test/r/func_str.result: resolved test merge conflicts mysql-test/t/func_str.test: resolved test merge conflicts
This commit is contained in:
@ -1960,4 +1960,16 @@ NULL
|
|||||||
SELECT UNHEX('G') IS NULL;
|
SELECT UNHEX('G') IS NULL;
|
||||||
UNHEX('G') IS NULL
|
UNHEX('G') IS NULL
|
||||||
1
|
1
|
||||||
|
SELECT INSERT('abc', 3, 3, '1234');
|
||||||
|
INSERT('abc', 3, 3, '1234')
|
||||||
|
ab1234
|
||||||
|
SELECT INSERT('abc', 4, 3, '1234');
|
||||||
|
INSERT('abc', 4, 3, '1234')
|
||||||
|
abc1234
|
||||||
|
SELECT INSERT('abc', 5, 3, '1234');
|
||||||
|
INSERT('abc', 5, 3, '1234')
|
||||||
|
abc
|
||||||
|
SELECT INSERT('abc', 6, 3, '1234');
|
||||||
|
INSERT('abc', 6, 3, '1234')
|
||||||
|
abc
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -1008,7 +1008,6 @@ select repeat('a', cast(2 as unsigned int));
|
|||||||
select rpad('abc', cast(5 as unsigned integer), 'x');
|
select rpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #25197 :repeat function returns null when using table field directly as count
|
# Bug #25197 :repeat function returns null when using table field directly as count
|
||||||
#
|
#
|
||||||
@ -1036,4 +1035,12 @@ DROP TABLE t1;
|
|||||||
SELECT UNHEX('G');
|
SELECT UNHEX('G');
|
||||||
SELECT UNHEX('G') IS NULL;
|
SELECT UNHEX('G') IS NULL;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #26281: INSERT() function mishandles NUL on boundary condition
|
||||||
|
#
|
||||||
|
SELECT INSERT('abc', 3, 3, '1234');
|
||||||
|
SELECT INSERT('abc', 4, 3, '1234');
|
||||||
|
SELECT INSERT('abc', 5, 3, '1234');
|
||||||
|
SELECT INSERT('abc', 6, 3, '1234');
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -967,18 +967,18 @@ String *Item_func_insert::val_str(String *str)
|
|||||||
args[3]->null_value)
|
args[3]->null_value)
|
||||||
goto null; /* purecov: inspected */
|
goto null; /* purecov: inspected */
|
||||||
|
|
||||||
if ((start < 0) || (start > res->length() + 1))
|
if ((start < 0) || (start > res->length()))
|
||||||
return res; // Wrong param; skip insert
|
return res; // Wrong param; skip insert
|
||||||
if ((length < 0) || (length > res->length() + 1))
|
if ((length < 0) || (length > res->length()))
|
||||||
length= res->length() + 1;
|
length= res->length();
|
||||||
|
|
||||||
/* start and length are now sufficiently valid to pass to charpos function */
|
/* start and length are now sufficiently valid to pass to charpos function */
|
||||||
start= res->charpos((int) start);
|
start= res->charpos((int) start);
|
||||||
length= res->charpos((int) length, (uint32) start);
|
length= res->charpos((int) length, (uint32) start);
|
||||||
|
|
||||||
/* Re-testing with corrected params */
|
/* Re-testing with corrected params */
|
||||||
if (start > res->length() + 1)
|
if (start > res->length())
|
||||||
return res; // Wrong param; skip insert
|
return res; /* purecov: inspected */ // Wrong param; skip insert
|
||||||
if (length > res->length() - start)
|
if (length > res->length() - start)
|
||||||
length= res->length() - start;
|
length= res->length() - start;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user