Commit 62a9a54a authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-33344 REGEXP empty string inconsistent

parent 7828aadd
......@@ -110,7 +110,7 @@ R2
R3
deallocate prepare stmt1;
drop table t1;
End of 4.1 tests
# End of 4.1 tests
SELECT 1 REGEXP NULL;
1 REGEXP NULL
NULL
......@@ -126,7 +126,7 @@ NULL
SELECT "ABC" REGEXP BINARY NULL;
"ABC" REGEXP BINARY NULL
NULL
End of 5.0 tests
# End of 5.0 tests
CREATE TABLE t1(a INT, b CHAR(4));
INSERT INTO t1 VALUES (1, '6.1'), (1, '7.0'), (1, '8.0');
PREPARE stmt1 FROM "SELECT a FROM t1 WHERE a=1 AND '7.0' REGEXP b LIMIT 1";
......@@ -144,7 +144,7 @@ a
1
DEALLOCATE PREPARE stmt1;
DROP TABLE t1;
End of 5.1 tests
# End of 5.1 tests
SELECT ' ' REGEXP '[[:blank:]]';
' ' REGEXP '[[:blank:]]'
1
......@@ -163,3 +163,19 @@ SELECT '\t' REGEXP '[[:space:]]';
SELECT REGEXP_INSTR('111222333',2);
REGEXP_INSTR('111222333',2)
4
# End of 10.3 tests
#
# MDEV-33344 REGEXP empty string inconsistent
#
create table t1 (x char(5));
insert t1 values (''), ('x');
select 'foo' regexp x from t1 order by x asc;
'foo' regexp x
1
0
select 'foo' regexp x from t1 order by x desc;
'foo' regexp x
0
1
drop table t1;
# End of 10.5 tests
......@@ -55,7 +55,7 @@ execute stmt1 using @a;
deallocate prepare stmt1;
drop table t1;
--echo End of 4.1 tests
--echo # End of 4.1 tests
#
......@@ -74,7 +74,7 @@ SELECT NULL REGEXP BINARY NULL;
SELECT 'A' REGEXP BINARY NULL;
SELECT "ABC" REGEXP BINARY NULL;
--echo End of 5.0 tests
--echo # End of 5.0 tests
#
......@@ -91,7 +91,7 @@ DEALLOCATE PREPARE stmt1;
DROP TABLE t1;
--echo End of 5.1 tests
--echo # End of 5.1 tests
#
# MDEV-5820 MySQL Bug #54805 definitions in regex/my_regex.h conflict with /usr/include/regex.h
......@@ -110,3 +110,15 @@ SELECT '\t' REGEXP '[[:space:]]';
--echo #
SELECT REGEXP_INSTR('111222333',2);
--echo # End of 10.3 tests
--echo #
--echo # MDEV-33344 REGEXP empty string inconsistent
--echo #
create table t1 (x char(5));
insert t1 values (''), ('x');
select 'foo' regexp x from t1 order by x asc;
select 'foo' regexp x from t1 order by x desc;
drop table t1;
--echo # End of 10.5 tests
......@@ -6062,8 +6062,8 @@ bool Regexp_processor_pcre::compile(String *pattern, bool send_error)
if (!stringcmp(pattern, &m_prev_pattern))
return false;
cleanup();
m_prev_pattern.copy(*pattern);
}
m_prev_pattern.copy(*pattern);
if (!(pattern= convert_if_needed(pattern, &pattern_converter)))
return true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment