mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#48459: valgrind errors with query using 'Range checked
for each record' There was an error in an internal structure in the range optimizer (SEL_ARG). Bad design causes parts of a data structure not to be initialized when it is in a certain state. All client code must check that this state is not present before trying to access the structure's data. Fixed by - Checking the state before trying to access data (in several places, most of which not covered by test case.) - Copying the keypart id when cloning SEL_ARGs
This commit is contained in:
@ -1604,6 +1604,39 @@ str_to_date('', '%Y-%m-%d')
|
||||
0000-00-00
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug#48459: valgrind errors with query using 'Range checked for each
|
||||
# record'
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b CHAR(2),
|
||||
c INT,
|
||||
d INT,
|
||||
KEY ( c ),
|
||||
KEY ( d, a, b ( 2 ) ),
|
||||
KEY ( b ( 1 ) )
|
||||
);
|
||||
INSERT INTO t1 VALUES ( NULL, 'a', 1, 2 ), ( NULL, 'a', 1, 2 ),
|
||||
( 1, 'a', 1, 2 ), ( 1, 'a', 1, 2 );
|
||||
CREATE TABLE t2 (
|
||||
a INT,
|
||||
c INT,
|
||||
e INT,
|
||||
KEY ( e )
|
||||
);
|
||||
INSERT INTO t2 VALUES ( 1, 1, NULL ), ( 1, 1, NULL );
|
||||
# Should not give Valgrind warnings
|
||||
SELECT 1
|
||||
FROM t1, t2
|
||||
WHERE t1.d <> '1' AND t1.b > '1'
|
||||
AND t1.a = t2.a AND t1.c = t2.c;
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug #48665: sql-bench's insert test fails due to wrong result
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a));
|
||||
|
Reference in New Issue
Block a user