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;
 | 
