SET sql_mode=ORACLE; # # MDEV-29095 REGEXP_REPLACE treats empty strings different than REPLACE in ORACLE mode # CREATE TABLE t1 (replacement VARCHAR(10)); INSERT INTO t1 VALUES (NULL), (''); SELECT replacement, REGEXP_REPLACE('abba','a',replacement) FROM t1 ORDER BY replacement; replacement REGEXP_REPLACE('abba','a',replacement) NULL bb bb DROP TABLE t1; SELECT REGEXP_REPLACE('abba','a',null); REGEXP_REPLACE('abba','a',null) bb EXPLAIN EXTENDED SELECT REPLACE('abba','a',null) ; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Note 1003 select replace('abba','a',NULL) AS "REPLACE('abba','a',null)" CREATE VIEW v1 AS SELECT REPLACE('abba','a',null) ; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection v1 CREATE VIEW "v1" AS select replace('abba','a',NULL) AS "REPLACE('abba','a',null)" latin1 latin1_swedish_ci SELECT * FROM v1; REPLACE('abba','a',null) bb SET sql_mode=DEFAULT; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select oracle_schema.replace('abba','a',NULL) AS `REPLACE('abba','a',null)` latin1 latin1_swedish_ci SELECT * FROM v1; REPLACE('abba','a',null) bb DROP VIEW v1;