mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fix for BUG#7716: in in_string::set() take into account that the value returned
by item->val_str() may be a substring of the passed string.
Disallow string=its_substring assignment in String::operator=().
mysql-test/r/func_misc.result:
Testcase for BUG#7716
mysql-test/t/func_misc.test:
Testcase for BUG#7716
sql/item_cmpfunc.cc:
Fix for BUG#7716: in in_string::set() take into account that the string returned
by item->val_str(S) may be not S but use the buffer owned by S.
sql/sql_string.h:
* Added assert: String& String::operator=(const String&) may not be used to do
assignments like str = string_that_uses_buffer_owned_by_str
* Added String::uses_buffer_owned_by().
This commit is contained in:
@@ -28,3 +28,24 @@ length(format('nan', 2)) > 0
|
||||
select concat("$",format(2500,2));
|
||||
concat("$",format(2500,2))
|
||||
$2,500.00
|
||||
create table t1 ( a timestamp );
|
||||
insert into t1 values ( '2004-01-06 12:34' );
|
||||
select a from t1 where left(a+0,6) in ( left(20040106,6) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
select a from t1 where left(a+0,6) = ( left(20040106,6) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
select a from t1 where right(a+0,6) in ( right(20040106123400,6) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
select a from t1 where right(a+0,6) = ( right(20040106123400,6) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
select a from t1 where mid(a+0,6,3) in ( mid(20040106123400,6,3) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
drop table t1;
|
||||
|
||||
Reference in New Issue
Block a user