summaryrefslogtreecommitdiff
path: root/mysql-test/suite/compat/oracle/t/func_trim.test
blob: 153238fb0928cc2969aeefa338b43fcdcab64b24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
SET sql_mode=ORACLE;

--echo #
--echo # MDEV-15664 sql_mode=ORACLE: Make TRIM return NULL instead of empty string
--echo #

SELECT TRIM('abc'), TRIM('abc ')||'.', '.'||TRIM(' abc ')||'.', TRIM('  '), TRIM(NULL), TRIM(SPACE(0)),TRIM(SPACE(10)) FROM dual;

SELECT TRIM(TRAILING 'abc' FROM 'abc');
SELECT TRIM(TRAILING 'abc' FROM 'abc ');
SELECT TRIM(TRAILING 'abc' FROM ' abc');

SELECT TRIM(LEADING 'abc' FROM 'abc');
SELECT TRIM(LEADING 'abc' FROM 'abc ');
SELECT TRIM(LEADING 'abc' FROM ' abc');

SELECT TRIM(BOTH 'abc' FROM 'abc');
SELECT TRIM(BOTH 'abc' FROM 'abc ');
SELECT TRIM(BOTH 'abc' FROM ' abc');

SELECT RTRIM('abc'), RTRIM('abc ')||'.', RTRIM(' abc ')||'.', RTRIM('  '), RTRIM(NULL), RTRIM(SPACE(0)),RTRIM(SPACE(10)) FROM dual;
SELECT LTRIM('abc'), LTRIM('abc '), LTRIM(' abc '), LTRIM('  '), LTRIM(NULL), LTRIM(SPACE(0)),LTRIM(SPACE(10)) FROM dual;

CREATE TABLE t1 (c1 VARCHAR(10),ord INTEGER);
INSERT INTO t1 VALUES ('abc',1);
INSERT INTO t1 VALUES (SPACE(0),2);
INSERT INTO t1 VALUES ('',3);
INSERT INTO t1 VALUES (' ',4);
INSERT INTO t1 VALUES ('      ',5);
INSERT INTO t1 VALUES ('   a     ',6);
INSERT INTO t1 VALUES ('aa',7);
INSERT INTO t1 VALUES ('aabb',8);
INSERT INTO t1 VALUES ('bbaa',9);
INSERT INTO t1 VALUES ('aabbaa',10);

SELECT ord,'['||c1||']','.'||COALESCE(TRIM(LEADING 'a' FROM c1),'NULL')||'.' FROM t1 ORDER BY ord;
SELECT ord,'['||c1||']','.'||COALESCE(TRIM(TRAILING 'a' FROM c1),'NULL')||'.' FROM t1 ORDER BY ord;
SELECT ord,'['||c1||']','.'||COALESCE(TRIM(BOTH 'a' FROM c1),'NULL')||'.' FROM t1 ORDER BY ord;
SELECT ord,'['||c1||']',COALESCE(LTRIM(c1),'NULL') FROM t1 ORDER BY ord;
SELECT ord,'['||c1||']',COALESCE(RTRIM(c1),'NULL')||'.' FROM t1 ORDER BY ord;

EXPLAIN EXTENDED SELECT TRIM('abc'),
                        TRIM(BOTH 'a' FROM 'abc'),
                        TRIM(LEADING 'a' FROM 'abc'),
                        TRIM(TRAILING 'a' FROM 'abc') ;

EXPLAIN EXTENDED SELECT RTRIM('abc'),
                        LTRIM('abc');


CREATE VIEW v1 AS SELECT ord,TRIM('abc'),RTRIM('abc'),LTRIM('abc'),
                         '['||c1||']',
                         TRIM(LEADING 'a' FROM c1),
                         TRIM(TRAILING 'a' FROM c1),
                         TRIM(BOTH 'a' FROM c1),
                         LTRIM(c1),
                         RTRIM(c1)
                  FROM t1 ORDER BY ord ;
SHOW CREATE VIEW v1;
SELECT * FROM v1;
DROP VIEW v1;

DROP TABLE t1;

CREATE TABLE t1 (c1 VARCHAR(10) NOT NULL);
CREATE TABLE t2 AS SELECT TRIM(LEADING 'a' FROM c1) AS C1,
                          TRIM(TRAILING 'a' FROM c1) AS C2,
                          TRIM(BOTH 'a' FROM c1) AS C3,
                          LTRIM(c1) AS C4,
                          RTRIM(c1) AS C5
        FROM t1;
SHOW CREATE TABLE t2;
DROP TABLE t2;
DROP TABLE t1;

CREATE TABLE trim_oracle (trim_oracle int);
DROP TABLE trim_oracle;