mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-10574 / SUBSTR - sql_mode=Oracle: return null instead of empty string
This commit is contained in:
@ -1,3 +1,7 @@
|
||||
#
|
||||
# MDEV-14012 - sql_mode=Oracle: substr(): treat position 0 as position 1
|
||||
# MDEV-10574 - sql_mode=Oracle: return null instead of empty string
|
||||
#
|
||||
SET sql_mode=ORACLE;
|
||||
SELECT SUBSTR('abc',2,1),SUBSTR('abc',1,1), SUBSTR('abc',0,1) FROM dual;
|
||||
SUBSTR('abc',2,1) SUBSTR('abc',1,1) SUBSTR('abc',0,1)
|
||||
@ -22,19 +26,52 @@ SUBSTR('abc',2,null) SUBSTR('abc',1,null) SUBSTR('abc',0,null)
|
||||
NULL NULL NULL
|
||||
SELECT SUBSTR('abc',2,0),SUBSTR('abc',1,0), SUBSTR('abc',0,0) FROM dual;
|
||||
SUBSTR('abc',2,0) SUBSTR('abc',1,0) SUBSTR('abc',0,0)
|
||||
|
||||
create table t1 (c1 varchar(10),start integer, length integer);
|
||||
NULL NULL NULL
|
||||
SELECT SUBSTR('abc',2,-1),SUBSTR('abc',1,-1), SUBSTR('abc',0,-1) FROM dual;
|
||||
SUBSTR('abc',2,-1) SUBSTR('abc',1,-1) SUBSTR('abc',0,-1)
|
||||
NULL NULL NULL
|
||||
SELECT SUBSTR(SPACE(0),1) FROM DUAL;
|
||||
SUBSTR(SPACE(0),1)
|
||||
NULL
|
||||
CREATE TABLE t1 (c1 VARCHAR(10),start INTEGER, length INTEGER);
|
||||
INSERT INTO t1 VALUES ('abc', 1, 1);
|
||||
INSERT INTO t1 VALUES ('abc', 0, 1);
|
||||
INSERT INTO t1 VALUES (null, 1, 1);
|
||||
INSERT INTO t1 VALUES (null, 0, 1);
|
||||
select substr(c1,start,length) from t1;
|
||||
substr(c1,start,length)
|
||||
INSERT INTO t1 VALUES ('abc', 1, 0);
|
||||
INSERT INTO t1 VALUES ('abc', 0, 0);
|
||||
INSERT INTO t1 VALUES (null, 1, 0);
|
||||
INSERT INTO t1 VALUES (null, 0, 0);
|
||||
INSERT INTO t1 VALUES ('abc', 1, -1);
|
||||
INSERT INTO t1 VALUES ('abc', 0, -1);
|
||||
INSERT INTO t1 VALUES (null, 1, -1);
|
||||
INSERT INTO t1 VALUES (null, 0, -1);
|
||||
INSERT INTO t1 VALUES (SPACE(0), 0, 1);
|
||||
SELECT SUBSTR(c1,start,length) FROM t1;
|
||||
SUBSTR(c1,start,length)
|
||||
a
|
||||
a
|
||||
NULL
|
||||
NULL
|
||||
drop table t1;
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 VARCHAR(10) NOT NULL);
|
||||
CREATE TABLE t2 AS SELECT SUBSTR(C1,1,1) AS C1 from t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE "t2" (
|
||||
"C1" varchar(1) DEFAULT NULL
|
||||
)
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
EXPLAIN EXTENDED SELECT SUBSTR('abc',2,1) ;
|
||||
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
|
||||
|
Reference in New Issue
Block a user