mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 06:22:28 +01:00
490ec62be4
when executed in version 5 Zero fill is a field attribute only. So we can't always propagate constants for zerofill fields : the values and expression results don't have that flag. Fixed by converting the const value to a string and using that in const propagation when the context allows it. Disable const propagation for fields with ZEROFILL flag in all the other cases.
79 lines
1.8 KiB
Text
79 lines
1.8 KiB
Text
#
|
|
# Bug when using comparions of strings and integers.
|
|
#
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE t1 (id CHAR(12) not null, PRIMARY KEY (id));
|
|
insert into t1 values ('000000000001'),('000000000002');
|
|
explain select * from t1 where id=000000000001;
|
|
select * from t1 where id=000000000001;
|
|
delete from t1 where id=000000000002;
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Check the following:
|
|
# "a" == "a "
|
|
# "a\0" < "a"
|
|
# "a\0" < "a "
|
|
|
|
SELECT 'a' = 'a ';
|
|
SELECT 'a\0' < 'a';
|
|
SELECT 'a\0' < 'a ';
|
|
SELECT 'a\t' < 'a';
|
|
SELECT 'a\t' < 'a ';
|
|
|
|
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);
|
|
# Extra test
|
|
SELECT CHAR(30) = '', '' = CHAR(30);
|
|
|
|
# End of 4.1 tests
|
|
|
|
#
|
|
#Bug #21159: Optimizer: wrong result after AND with different data types
|
|
#
|
|
create table t1 (a tinyint(1),b binary(1));
|
|
insert into t1 values (0x01,0x01);
|
|
select * from t1 where a=b;
|
|
select * from t1 where a=b and b=0x01;
|
|
drop table if exists t1;
|
|
|
|
#
|
|
# Bug #31887: DML Select statement not returning same results when executed
|
|
# in version 5
|
|
#
|
|
|
|
CREATE TABLE t1 (b int(2) zerofill, c int(2) zerofill);
|
|
INSERT INTO t1 (b,c) VALUES (1,2), (1,1), (2,2);
|
|
|
|
SELECT CONCAT(b,c), CONCAT(b,c) = '0101' FROM t1;
|
|
|
|
EXPLAIN EXTENDED SELECT b,c FROM t1 WHERE b = 1 AND CONCAT(b,c) = '0101';
|
|
SELECT b,c FROM t1 WHERE b = 1 AND CONCAT(b,c) = '0101';
|
|
|
|
CREATE TABLE t2 (a int);
|
|
INSERT INTO t2 VALUES (1),(2);
|
|
|
|
SELECT a,
|
|
(SELECT COUNT(*) FROM t1
|
|
WHERE b = t2.a AND CONCAT(b,c) = CONCAT('0',t2.a,'01')) x
|
|
FROM t2 ORDER BY a;
|
|
|
|
EXPLAIN EXTENDED
|
|
SELECT a,
|
|
(SELECT COUNT(*) FROM t1
|
|
WHERE b = t2.a AND CONCAT(b,c) = CONCAT('0',t2.a,'01')) x
|
|
FROM t2 ORDER BY a;
|
|
|
|
DROP TABLE t1,t2;
|
|
|
|
--echo End of 5.0 tests
|