117 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# Testing CONCAT with null values
 | 
						|
#
 | 
						|
 | 
						|
SET sql_mode=ORACLE;
 | 
						|
 | 
						|
EXPLAIN EXTENDED SELECT 'a'||'b'||'c';
 | 
						|
EXPLAIN EXTENDED SELECT CONCAT('a'||'b'||'c');
 | 
						|
 | 
						|
SELECT ''   || '';
 | 
						|
SELECT ''   || 'b';
 | 
						|
SELECT ''   || NULL;
 | 
						|
SELECT 'a'  || '';
 | 
						|
SELECT 'a'  || 'b';
 | 
						|
SELECT 'a'  || NULL;
 | 
						|
SELECT NULL || '';
 | 
						|
SELECT NULL || 'b';
 | 
						|
SELECT NULL || NULL;
 | 
						|
 | 
						|
SELECT ''   || ''    || '';
 | 
						|
SELECT ''   || ''    || 'c';
 | 
						|
SELECT ''   || ''    || NULL;
 | 
						|
SELECT ''   || 'b'   || '';
 | 
						|
SELECT ''   || 'b'   || 'c';
 | 
						|
SELECT ''   || 'b'   || NULL;
 | 
						|
SELECT ''   || NULL  || '';
 | 
						|
SELECT ''   || NULL  || 'c';
 | 
						|
SELECT ''   || NULL  || NULL;
 | 
						|
 | 
						|
SELECT 'a'  || ''    || '';
 | 
						|
SELECT 'a'  || ''    || 'c';
 | 
						|
SELECT 'a'  || ''    || NULL;
 | 
						|
SELECT 'a'  || 'b'   || '';
 | 
						|
SELECT 'a'  || 'b'   || 'c';
 | 
						|
SELECT 'a'  || 'b'   || NULL;
 | 
						|
SELECT 'a'  || NULL  || '';
 | 
						|
SELECT 'a'  || NULL  || 'c';
 | 
						|
SELECT 'a'  || NULL  || NULL;
 | 
						|
 | 
						|
SELECT NULL || ''    || '';
 | 
						|
SELECT NULL || ''    || 'c';
 | 
						|
SELECT NULL || ''    || NULL;
 | 
						|
SELECT NULL || 'b'   || '';
 | 
						|
SELECT NULL || 'b'   || 'c';
 | 
						|
SELECT NULL || 'b'   || NULL;
 | 
						|
SELECT NULL || NULL  || '';
 | 
						|
SELECT NULL || NULL  || 'c';
 | 
						|
SELECT NULL || NULL  || NULL;
 | 
						|
 | 
						|
CREATE TABLE t1 (a VARCHAR(10), b VARCHAR(10), c VARCHAR(10));
 | 
						|
 | 
						|
INSERT INTO t1 VALUES ('',   '',   '');
 | 
						|
INSERT INTO t1 VALUES ('',   '',   'c');
 | 
						|
INSERT INTO t1 VALUES ('',   '',   NULL);
 | 
						|
INSERT INTO t1 VALUES ('',   'b',  '');
 | 
						|
INSERT INTO t1 VALUES ('',   'b',  'c');
 | 
						|
INSERT INTO t1 VALUES ('',   'b',  NULL);
 | 
						|
INSERT INTO t1 VALUES ('',   NULL, '');
 | 
						|
INSERT INTO t1 VALUES ('',   NULL, 'c');
 | 
						|
INSERT INTO t1 VALUES ('',   NULL, NULL);
 | 
						|
 | 
						|
INSERT INTO t1 VALUES ('a',  '',   '');
 | 
						|
INSERT INTO t1 VALUES ('a',  '',   'c');
 | 
						|
INSERT INTO t1 VALUES ('a',  '',   NULL);
 | 
						|
INSERT INTO t1 VALUES ('a',  'b',  '');
 | 
						|
INSERT INTO t1 VALUES ('a',  'b',  'c');
 | 
						|
INSERT INTO t1 VALUES ('a',  'b',  NULL);
 | 
						|
INSERT INTO t1 VALUES ('a',  NULL, '');
 | 
						|
INSERT INTO t1 VALUES ('a',  NULL, 'c');
 | 
						|
INSERT INTO t1 VALUES ('a',  NULL, NULL);
 | 
						|
 | 
						|
INSERT INTO t1 VALUES (NULL, '',   '');
 | 
						|
INSERT INTO t1 VALUES (NULL, '',   'c');
 | 
						|
INSERT INTO t1 VALUES (NULL, '',   NULL);
 | 
						|
INSERT INTO t1 VALUES (NULL, 'b',  '');
 | 
						|
INSERT INTO t1 VALUES (NULL, 'b',  'c');
 | 
						|
INSERT INTO t1 VALUES (NULL, 'b',  NULL);
 | 
						|
INSERT INTO t1 VALUES (NULL, NULL, '');
 | 
						|
INSERT INTO t1 VALUES (NULL, NULL, 'c');
 | 
						|
INSERT INTO t1 VALUES (NULL, NULL, NULL);
 | 
						|
 | 
						|
SELECT LENGTH(a||b||c), a||b||c FROM t1 ORDER BY a,b,c;
 | 
						|
SELECT LENGTH(CONCAT(a||b||c)), CONCAT(a||b||c) FROM t1 ORDER BY a,b,c;
 | 
						|
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
--echo #
 | 
						|
--echo # MDEV-12478 CONCAT function inside view casts values incorrectly with Oracle sql_mode
 | 
						|
--echo #
 | 
						|
 | 
						|
SET sql_mode=ORACLE;
 | 
						|
CREATE VIEW v1 AS SELECT 'foo'||NULL||'bar' AS test;
 | 
						|
SHOW CREATE VIEW v1;
 | 
						|
SELECT * FROM v1;
 | 
						|
SET sql_mode=DEFAULT;
 | 
						|
SHOW CREATE VIEW v1;
 | 
						|
SELECT * FROM v1;
 | 
						|
DROP VIEW v1;
 | 
						|
 | 
						|
SET sql_mode=DEFAULT;
 | 
						|
CREATE VIEW v1 AS SELECT CONCAT('foo',NULL,'bar') AS test;
 | 
						|
SHOW CREATE VIEW v1;
 | 
						|
SELECT * FROM v1;
 | 
						|
SET sql_mode=ORACLE;
 | 
						|
SHOW CREATE VIEW v1;
 | 
						|
SELECT * FROM v1;
 | 
						|
DROP VIEW v1;
 | 
						|
 | 
						|
SET sql_mode=DEFAULT;
 | 
						|
CREATE VIEW v1 AS SELECT '0'||'1' AS test;
 | 
						|
SHOW CREATE VIEW v1;
 | 
						|
SELECT * FROM v1;
 | 
						|
SET sql_mode=ORACLE;
 | 
						|
SHOW CREATE VIEW v1;
 | 
						|
SELECT * FROM v1;
 | 
						|
DROP VIEW v1;
 |