mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	Reverting a part of the patch for "MDEV-8909union parser cleanup", as a parenthesized SELECT with PROCEDURE followed by UNION is not disallowed by the grammar (only a non-parenthesized SELECT with PROCEDURE followed by a UNION is disallowed grammatically).
		
			
				
	
	
		
			1283 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1283 lines
		
	
	
		
			65 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
SET @save_sql_mode=@@sql_mode;
 | 
						|
set SQL_MODE='';
 | 
						|
create table ADDDATE(a int);
 | 
						|
drop table ADDDATE;
 | 
						|
create table ADDDATE (a int);
 | 
						|
drop table ADDDATE;
 | 
						|
create table BIT_AND(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_AND(a int)' at line 1
 | 
						|
create table BIT_AND (a int);
 | 
						|
drop table BIT_AND;
 | 
						|
create table BIT_OR(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_OR(a int)' at line 1
 | 
						|
create table BIT_OR (a int);
 | 
						|
drop table BIT_OR;
 | 
						|
create table BIT_XOR(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_XOR(a int)' at line 1
 | 
						|
create table BIT_XOR (a int);
 | 
						|
drop table BIT_XOR;
 | 
						|
create table CAST(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CAST(a int)' at line 1
 | 
						|
create table CAST (a int);
 | 
						|
drop table CAST;
 | 
						|
create table COUNT(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'COUNT(a int)' at line 1
 | 
						|
create table COUNT (a int);
 | 
						|
drop table COUNT;
 | 
						|
create table CURDATE(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CURDATE(a int)' at line 1
 | 
						|
create table CURDATE (a int);
 | 
						|
drop table CURDATE;
 | 
						|
create table CURTIME(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CURTIME(a int)' at line 1
 | 
						|
create table CURTIME (a int);
 | 
						|
drop table CURTIME;
 | 
						|
create table DATE_ADD(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_ADD(a int)' at line 1
 | 
						|
create table DATE_ADD (a int);
 | 
						|
drop table DATE_ADD;
 | 
						|
create table DATE_SUB(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_SUB(a int)' at line 1
 | 
						|
create table DATE_SUB (a int);
 | 
						|
drop table DATE_SUB;
 | 
						|
create table EXTRACT(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'EXTRACT(a int)' at line 1
 | 
						|
create table EXTRACT (a int);
 | 
						|
drop table EXTRACT;
 | 
						|
create table GROUP_CONCAT(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GROUP_CONCAT(a int)' at line 1
 | 
						|
create table GROUP_CONCAT (a int);
 | 
						|
drop table GROUP_CONCAT;
 | 
						|
create table GROUP_UNIQUE_USERS(a int);
 | 
						|
drop table GROUP_UNIQUE_USERS;
 | 
						|
create table GROUP_UNIQUE_USERS (a int);
 | 
						|
drop table GROUP_UNIQUE_USERS;
 | 
						|
create table MAX(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MAX(a int)' at line 1
 | 
						|
create table MAX (a int);
 | 
						|
drop table MAX;
 | 
						|
create table MID(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MID(a int)' at line 1
 | 
						|
create table MID (a int);
 | 
						|
drop table MID;
 | 
						|
create table MIN(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MIN(a int)' at line 1
 | 
						|
create table MIN (a int);
 | 
						|
drop table MIN;
 | 
						|
create table NOW(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOW(a int)' at line 1
 | 
						|
create table NOW (a int);
 | 
						|
drop table NOW;
 | 
						|
create table POSITION(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'POSITION(a int)' at line 1
 | 
						|
create table POSITION (a int);
 | 
						|
drop table POSITION;
 | 
						|
create table SESSION_USER(a int);
 | 
						|
drop table SESSION_USER;
 | 
						|
create table SESSION_USER (a int);
 | 
						|
drop table SESSION_USER;
 | 
						|
create table STD(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STD(a int)' at line 1
 | 
						|
create table STD (a int);
 | 
						|
drop table STD;
 | 
						|
create table STDDEV(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV(a int)' at line 1
 | 
						|
create table STDDEV (a int);
 | 
						|
drop table STDDEV;
 | 
						|
create table STDDEV_POP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV_POP(a int)' at line 1
 | 
						|
create table STDDEV_POP (a int);
 | 
						|
drop table STDDEV_POP;
 | 
						|
create table STDDEV_SAMP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV_SAMP(a int)' at line 1
 | 
						|
create table STDDEV_SAMP (a int);
 | 
						|
drop table STDDEV_SAMP;
 | 
						|
create table SUBDATE(a int);
 | 
						|
drop table SUBDATE;
 | 
						|
create table SUBDATE (a int);
 | 
						|
drop table SUBDATE;
 | 
						|
create table SUBSTR(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUBSTR(a int)' at line 1
 | 
						|
create table SUBSTR (a int);
 | 
						|
drop table SUBSTR;
 | 
						|
create table SUBSTRING(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUBSTRING(a int)' at line 1
 | 
						|
create table SUBSTRING (a int);
 | 
						|
drop table SUBSTRING;
 | 
						|
create table SUM(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUM(a int)' at line 1
 | 
						|
create table SUM (a int);
 | 
						|
drop table SUM;
 | 
						|
create table SYSDATE(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SYSDATE(a int)' at line 1
 | 
						|
create table SYSDATE (a int);
 | 
						|
drop table SYSDATE;
 | 
						|
create table SYSTEM_USER(a int);
 | 
						|
drop table SYSTEM_USER;
 | 
						|
create table SYSTEM_USER (a int);
 | 
						|
drop table SYSTEM_USER;
 | 
						|
create table TRIM(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TRIM(a int)' at line 1
 | 
						|
create table TRIM (a int);
 | 
						|
drop table TRIM;
 | 
						|
create table UNIQUE_USERS(a int);
 | 
						|
drop table UNIQUE_USERS;
 | 
						|
create table UNIQUE_USERS (a int);
 | 
						|
drop table UNIQUE_USERS;
 | 
						|
create table VARIANCE(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VARIANCE(a int)' at line 1
 | 
						|
create table VARIANCE (a int);
 | 
						|
drop table VARIANCE;
 | 
						|
create table VAR_POP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VAR_POP(a int)' at line 1
 | 
						|
create table VAR_POP (a int);
 | 
						|
drop table VAR_POP;
 | 
						|
create table VAR_SAMP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VAR_SAMP(a int)' at line 1
 | 
						|
create table VAR_SAMP (a int);
 | 
						|
drop table VAR_SAMP;
 | 
						|
set SQL_MODE='IGNORE_SPACE';
 | 
						|
create table ADDDATE(a int);
 | 
						|
drop table ADDDATE;
 | 
						|
create table ADDDATE (a int);
 | 
						|
drop table ADDDATE;
 | 
						|
create table BIT_AND(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_AND(a int)' at line 1
 | 
						|
create table BIT_AND (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_AND (a int)' at line 1
 | 
						|
create table BIT_OR(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_OR(a int)' at line 1
 | 
						|
create table BIT_OR (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_OR (a int)' at line 1
 | 
						|
create table BIT_XOR(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_XOR(a int)' at line 1
 | 
						|
create table BIT_XOR (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'BIT_XOR (a int)' at line 1
 | 
						|
create table CAST(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CAST(a int)' at line 1
 | 
						|
create table CAST (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CAST (a int)' at line 1
 | 
						|
create table COUNT(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'COUNT(a int)' at line 1
 | 
						|
create table COUNT (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'COUNT (a int)' at line 1
 | 
						|
create table CURDATE(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CURDATE(a int)' at line 1
 | 
						|
create table CURDATE (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CURDATE (a int)' at line 1
 | 
						|
create table CURTIME(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CURTIME(a int)' at line 1
 | 
						|
create table CURTIME (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CURTIME (a int)' at line 1
 | 
						|
create table DATE_ADD(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_ADD(a int)' at line 1
 | 
						|
create table DATE_ADD (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_ADD (a int)' at line 1
 | 
						|
create table DATE_SUB(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_SUB(a int)' at line 1
 | 
						|
create table DATE_SUB (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DATE_SUB (a int)' at line 1
 | 
						|
create table EXTRACT(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'EXTRACT(a int)' at line 1
 | 
						|
create table EXTRACT (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'EXTRACT (a int)' at line 1
 | 
						|
create table GROUP_CONCAT(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GROUP_CONCAT(a int)' at line 1
 | 
						|
create table GROUP_CONCAT (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GROUP_CONCAT (a int)' at line 1
 | 
						|
create table GROUP_UNIQUE_USERS(a int);
 | 
						|
drop table GROUP_UNIQUE_USERS;
 | 
						|
create table GROUP_UNIQUE_USERS (a int);
 | 
						|
drop table GROUP_UNIQUE_USERS;
 | 
						|
create table MAX(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MAX(a int)' at line 1
 | 
						|
create table MAX (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MAX (a int)' at line 1
 | 
						|
create table MID(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MID(a int)' at line 1
 | 
						|
create table MID (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MID (a int)' at line 1
 | 
						|
create table MIN(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MIN(a int)' at line 1
 | 
						|
create table MIN (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MIN (a int)' at line 1
 | 
						|
create table NOW(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOW(a int)' at line 1
 | 
						|
create table NOW (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOW (a int)' at line 1
 | 
						|
create table POSITION(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'POSITION(a int)' at line 1
 | 
						|
create table POSITION (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'POSITION (a int)' at line 1
 | 
						|
create table SESSION_USER(a int);
 | 
						|
drop table SESSION_USER;
 | 
						|
create table SESSION_USER (a int);
 | 
						|
drop table SESSION_USER;
 | 
						|
create table STD(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STD(a int)' at line 1
 | 
						|
create table STD (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STD (a int)' at line 1
 | 
						|
create table STDDEV(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV(a int)' at line 1
 | 
						|
create table STDDEV (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV (a int)' at line 1
 | 
						|
create table STDDEV_POP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV_POP(a int)' at line 1
 | 
						|
create table STDDEV_POP (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV_POP (a int)' at line 1
 | 
						|
create table STDDEV_SAMP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV_SAMP(a int)' at line 1
 | 
						|
create table STDDEV_SAMP (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STDDEV_SAMP (a int)' at line 1
 | 
						|
create table SUBDATE(a int);
 | 
						|
drop table SUBDATE;
 | 
						|
create table SUBDATE (a int);
 | 
						|
drop table SUBDATE;
 | 
						|
create table SUBSTR(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUBSTR(a int)' at line 1
 | 
						|
create table SUBSTR (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUBSTR (a int)' at line 1
 | 
						|
create table SUBSTRING(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUBSTRING(a int)' at line 1
 | 
						|
create table SUBSTRING (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUBSTRING (a int)' at line 1
 | 
						|
create table SUM(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUM(a int)' at line 1
 | 
						|
create table SUM (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SUM (a int)' at line 1
 | 
						|
create table SYSDATE(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SYSDATE(a int)' at line 1
 | 
						|
create table SYSDATE (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SYSDATE (a int)' at line 1
 | 
						|
create table SYSTEM_USER(a int);
 | 
						|
drop table SYSTEM_USER;
 | 
						|
create table SYSTEM_USER (a int);
 | 
						|
drop table SYSTEM_USER;
 | 
						|
create table TRIM(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TRIM(a int)' at line 1
 | 
						|
create table TRIM (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TRIM (a int)' at line 1
 | 
						|
create table UNIQUE_USERS(a int);
 | 
						|
drop table UNIQUE_USERS;
 | 
						|
create table UNIQUE_USERS (a int);
 | 
						|
drop table UNIQUE_USERS;
 | 
						|
create table VARIANCE(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VARIANCE(a int)' at line 1
 | 
						|
create table VARIANCE (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VARIANCE (a int)' at line 1
 | 
						|
create table VAR_POP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VAR_POP(a int)' at line 1
 | 
						|
create table VAR_POP (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VAR_POP (a int)' at line 1
 | 
						|
create table VAR_SAMP(a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VAR_SAMP(a int)' at line 1
 | 
						|
create table VAR_SAMP (a int);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'VAR_SAMP (a int)' at line 1
 | 
						|
DROP TABLE IF EXISTS table_25930_a;
 | 
						|
DROP TABLE IF EXISTS table_25930_b;
 | 
						|
SET SQL_MODE = 'ANSI_QUOTES';
 | 
						|
CREATE TABLE table_25930_a ( "blah" INT );
 | 
						|
CREATE TABLE table_25930_b SELECT "blah" - 1 FROM table_25930_a;
 | 
						|
desc table_25930_b;
 | 
						|
Field	Type	Null	Key	Default	Extra
 | 
						|
"blah" - 1	bigint(12)	YES		NULL	
 | 
						|
DROP TABLE table_25930_a;
 | 
						|
DROP TABLE table_25930_b;
 | 
						|
SET @@sql_mode=@save_sql_mode;
 | 
						|
DROP PROCEDURE IF EXISTS p26030;
 | 
						|
select "non terminated"$$
 | 
						|
non terminated
 | 
						|
non terminated
 | 
						|
select "terminated";$$
 | 
						|
terminated
 | 
						|
terminated
 | 
						|
select "non terminated, space"      $$
 | 
						|
non terminated, space
 | 
						|
non terminated, space
 | 
						|
select "terminated, space";      $$
 | 
						|
terminated, space
 | 
						|
terminated, space
 | 
						|
select "non terminated, comment" /* comment */$$
 | 
						|
non terminated, comment
 | 
						|
non terminated, comment
 | 
						|
select "terminated, comment"; /* comment */$$
 | 
						|
terminated, comment
 | 
						|
terminated, comment
 | 
						|
select "stmt 1";select "stmt 2 non terminated"$$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
stmt 2 non terminated
 | 
						|
stmt 2 non terminated
 | 
						|
select "stmt 1";select "stmt 2 terminated";$$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
stmt 2 terminated
 | 
						|
stmt 2 terminated
 | 
						|
select "stmt 1";select "stmt 2 non terminated, space"      $$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
stmt 2 non terminated, space
 | 
						|
stmt 2 non terminated, space
 | 
						|
select "stmt 1";select "stmt 2 terminated, space";      $$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
stmt 2 terminated, space
 | 
						|
stmt 2 terminated, space
 | 
						|
select "stmt 1";select "stmt 2 non terminated, comment" /* comment */$$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
stmt 2 non terminated, comment
 | 
						|
stmt 2 non terminated, comment
 | 
						|
select "stmt 1";select "stmt 2 terminated, comment"; /* comment */$$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
stmt 2 terminated, comment
 | 
						|
stmt 2 terminated, comment
 | 
						|
select "stmt 1";             select "space, stmt 2"$$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
space, stmt 2
 | 
						|
space, stmt 2
 | 
						|
select "stmt 1";/* comment */select "comment, stmt 2"$$
 | 
						|
stmt 1
 | 
						|
stmt 1
 | 
						|
comment, stmt 2
 | 
						|
comment, stmt 2
 | 
						|
DROP PROCEDURE IF EXISTS p26030; CREATE PROCEDURE p26030() BEGIN SELECT 1; END; CALL p26030()
 | 
						|
$$
 | 
						|
1
 | 
						|
1
 | 
						|
DROP PROCEDURE IF EXISTS p26030; CREATE PROCEDURE p26030() SELECT 1; CALL p26030()
 | 
						|
$$
 | 
						|
1
 | 
						|
1
 | 
						|
DROP PROCEDURE p26030;
 | 
						|
select pi(3.14);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'pi'
 | 
						|
select tan();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'tan'
 | 
						|
select tan(1, 2);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'tan'
 | 
						|
select makedate(1);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'makedate'
 | 
						|
select makedate(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'makedate'
 | 
						|
select maketime();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
 | 
						|
select maketime(1);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
 | 
						|
select maketime(1, 2);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
 | 
						|
select maketime(1, 2, 3, 4);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'maketime'
 | 
						|
select atan();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'atan'
 | 
						|
select atan2(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'atan2'
 | 
						|
select concat();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'concat'
 | 
						|
select concat("foo");
 | 
						|
concat("foo")
 | 
						|
foo
 | 
						|
select concat_ws();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'concat_ws'
 | 
						|
select concat_ws("foo");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'concat_ws'
 | 
						|
select encrypt();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'encrypt'
 | 
						|
select encrypt(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'encrypt'
 | 
						|
select des_encrypt("p1", "p2", "not expected");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'des_encrypt'
 | 
						|
select des_decrypt("p1", "p2", "not expected");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'des_decrypt'
 | 
						|
select elt();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'elt'
 | 
						|
select elt(1);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'elt'
 | 
						|
select export_set();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
 | 
						|
select export_set("p1");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
 | 
						|
select export_set("p1", "p2");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
 | 
						|
select export_set("p1", "p2", "p3", "p4", "p5", "p6");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'export_set'
 | 
						|
select field();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'field'
 | 
						|
select field("p1");
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'field'
 | 
						|
select from_unixtime();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'from_unixtime'
 | 
						|
select from_unixtime(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'from_unixtime'
 | 
						|
select unix_timestamp(1, 2);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'unix_timestamp'
 | 
						|
select greatest();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'greatest'
 | 
						|
select greatest(12);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'greatest'
 | 
						|
select last_insert_id(1, 2);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'last_insert_id'
 | 
						|
select least();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'least'
 | 
						|
select least(12);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'least'
 | 
						|
select locate();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'locate'
 | 
						|
select locate(1);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'locate'
 | 
						|
select locate(1, 2, 3, 4);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'locate'
 | 
						|
select log();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'log'
 | 
						|
select log(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'log'
 | 
						|
select make_set();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'make_set'
 | 
						|
select make_set(1);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'make_set'
 | 
						|
select master_pos_wait();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'master_pos_wait'
 | 
						|
select master_pos_wait(1);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'master_pos_wait'
 | 
						|
select master_pos_wait(1, 2, 3, 4, 5);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'master_pos_wait'
 | 
						|
select rand(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'rand'
 | 
						|
select round(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'round'
 | 
						|
select yearweek();
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'yearweek'
 | 
						|
select yearweek(1, 2, 3);
 | 
						|
ERROR 42000: Incorrect parameter count in the call to native function 'yearweek'
 | 
						|
select abs(3);
 | 
						|
abs(3)
 | 
						|
3
 | 
						|
select abs(3 AS three);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'abs'
 | 
						|
select abs(3 three);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'abs'
 | 
						|
select abs(3 AS "three");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'abs'
 | 
						|
select abs(3 "three");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'abs'
 | 
						|
set @bar="bar";
 | 
						|
set @foobar="foobar";
 | 
						|
select instr("foobar", "bar");
 | 
						|
instr("foobar", "bar")
 | 
						|
4
 | 
						|
select instr("foobar" AS p1, "bar");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar" p1, "bar");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar" AS "p1", "bar");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar" "p1", "bar");
 | 
						|
instr("foobar" "p1", "bar")
 | 
						|
4
 | 
						|
select instr(@foobar "p1", "bar");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar", "bar" AS p2);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar", "bar" p2);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar", "bar" AS "p2");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar", "bar" "p2");
 | 
						|
instr("foobar", "bar" "p2")
 | 
						|
0
 | 
						|
select instr("foobar", @bar "p2");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select instr("foobar" AS p1, "bar" AS p2);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'instr'
 | 
						|
select conv(255, 10, 16);
 | 
						|
conv(255, 10, 16)
 | 
						|
FF
 | 
						|
select conv(255 AS p1, 10, 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255 p1, 10, 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255 AS "p1", 10, 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255 "p1", 10, 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10 AS p2, 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10 p2, 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10 AS "p2", 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10 "p2", 16);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10, 16 AS p3);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10, 16 p3);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10, 16 AS "p3");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255, 10, 16 "p3");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select conv(255 AS p1, 10 AS p2, 16 AS p3);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'conv'
 | 
						|
select atan(10);
 | 
						|
atan(10)
 | 
						|
1.4711276743037347
 | 
						|
select atan(10 AS p1);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 p1);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 AS "p1");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 "p1");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10, 20);
 | 
						|
atan(10, 20)
 | 
						|
0.4636476090008061
 | 
						|
select atan(10 AS p1, 20);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 p1, 20);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 AS "p1", 20);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 "p1", 20);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10, 20 AS p2);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10, 20 p2);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10, 20 AS "p2");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10, 20 "p2");
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
select atan(10 AS p1, 20 AS p2);
 | 
						|
ERROR 42000: Incorrect parameters in the call to native function 'atan'
 | 
						|
DROP TABLE IF EXISTS t1;
 | 
						|
SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
 | 
						|
STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE
 | 
						|
22:10:00
 | 
						|
SELECT STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE;
 | 
						|
STR_TO_DATE('10:00 PM', '%h:%i %p') + INTERVAL (INTERVAL(1,2,3) + 1) MINUTE
 | 
						|
22:01:00
 | 
						|
SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
 | 
						|
"1997-12-31 23:59:59" + INTERVAL 1 SECOND
 | 
						|
1998-01-01 00:00:00
 | 
						|
SELECT 1 + INTERVAL(1,0,1,2) + 1;
 | 
						|
1 + INTERVAL(1,0,1,2) + 1
 | 
						|
4
 | 
						|
SELECT INTERVAL(1^1,0,1,2) + 1;
 | 
						|
INTERVAL(1^1,0,1,2) + 1
 | 
						|
2
 | 
						|
SELECT INTERVAL(1,0+1,2,3) * 5.5;
 | 
						|
INTERVAL(1,0+1,2,3) * 5.5
 | 
						|
5.5
 | 
						|
SELECT INTERVAL(3,3,1+3,4+4) / 0.5;
 | 
						|
INTERVAL(3,3,1+3,4+4) / 0.5
 | 
						|
2.0000
 | 
						|
SELECT (INTERVAL(1,0,1,2) + 5) * 7 + INTERVAL(1,0,1,2) / 2;
 | 
						|
(INTERVAL(1,0,1,2) + 5) * 7 + INTERVAL(1,0,1,2) / 2
 | 
						|
50.0000
 | 
						|
SELECT INTERVAL(1,0,1,2) + 1, 5 * INTERVAL(1,0,1,2);
 | 
						|
INTERVAL(1,0,1,2) + 1	5 * INTERVAL(1,0,1,2)
 | 
						|
3	10
 | 
						|
SELECT INTERVAL(0,(1*5)/2) + INTERVAL(5,4,3);
 | 
						|
INTERVAL(0,(1*5)/2) + INTERVAL(5,4,3)
 | 
						|
2
 | 
						|
SELECT 1^1 + INTERVAL 1+1 SECOND & 1 + INTERVAL 1+1 SECOND;
 | 
						|
1^1 + INTERVAL 1+1 SECOND & 1 + INTERVAL 1+1 SECOND
 | 
						|
NULL
 | 
						|
SELECT 1%2 - INTERVAL 1^1 SECOND | 1%2 - INTERVAL 1^1 SECOND;
 | 
						|
1%2 - INTERVAL 1^1 SECOND | 1%2 - INTERVAL 1^1 SECOND
 | 
						|
NULL
 | 
						|
CREATE TABLE t1 (a INT, b DATETIME);
 | 
						|
INSERT INTO t1 VALUES (INTERVAL(3,2,1) + 1, "1997-12-31 23:59:59" + INTERVAL 1 SECOND);
 | 
						|
SELECT * FROM t1 WHERE a = INTERVAL(3,2,1) + 1;
 | 
						|
a	b
 | 
						|
3	1998-01-01 00:00:00
 | 
						|
DROP TABLE t1;
 | 
						|
DROP TABLE IF EXISTS t1,t2,t3;
 | 
						|
CREATE TABLE t1 (a1 INT, a2 INT, a3 INT, a4 DATETIME);
 | 
						|
CREATE TABLE t2 LIKE t1;
 | 
						|
CREATE TABLE t3 LIKE t1;
 | 
						|
SELECT t1.* FROM t1 AS t0, { OJ t2 INNER JOIN t1 ON (t1.a1=t2.a1) } WHERE t0.a3=2;
 | 
						|
a1	a2	a3	a4
 | 
						|
SELECT t1.*,t2.* FROM { OJ ((t1 INNER JOIN t2 ON (t1.a1=t2.a2)) LEFT OUTER JOIN t3 ON t3.a3=t2.a1)};
 | 
						|
a1	a2	a3	a4	a1	a2	a3	a4
 | 
						|
SELECT t1.*,t2.* FROM { OJ ((t1 LEFT OUTER JOIN t2 ON t1.a3=t2.a2) INNER JOIN t3 ON (t3.a1=t2.a2))};
 | 
						|
a1	a2	a3	a4	a1	a2	a3	a4
 | 
						|
SELECT t1.*,t2.* FROM { OJ (t1 LEFT OUTER JOIN t2 ON t1.a1=t2.a2) CROSS JOIN t3 ON (t3.a2=t2.a3)};
 | 
						|
a1	a2	a3	a4	a1	a2	a3	a4
 | 
						|
SELECT * FROM {oj t1 LEFT OUTER JOIN t2 ON t1.a1=t2.a3} WHERE t1.a2 > 10;
 | 
						|
a1	a2	a3	a4	a1	a2	a3	a4
 | 
						|
SELECT {fn CONCAT(a1,a2)} FROM t1;
 | 
						|
{fn CONCAT(a1,a2)}
 | 
						|
UPDATE t3 SET a4={d '1789-07-14'} WHERE a1=0;
 | 
						|
SELECT a1, a4 FROM t2 WHERE a4 LIKE {fn UCASE('1789-07-14')};
 | 
						|
a1	a4
 | 
						|
DROP TABLE t1, t2, t3;
 | 
						|
#
 | 
						|
# End of 5.1 tests
 | 
						|
#
 | 
						|
#
 | 
						|
# Bug#17075846 : unquoted file names for variable values are
 | 
						|
#                accepted but parsed incorrectly
 | 
						|
#
 | 
						|
SET default_storage_engine=a.myisam;
 | 
						|
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
 | 
						|
SET default_storage_engine = .a.MyISAM;
 | 
						|
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
 | 
						|
SET default_storage_engine = a.b.MyISAM;
 | 
						|
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
 | 
						|
SET default_storage_engine = `a`.MyISAM;
 | 
						|
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
 | 
						|
SET default_storage_engine = `a`.`MyISAM`;
 | 
						|
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
 | 
						|
set default_storage_engine = "a.MYISAM";
 | 
						|
ERROR 42000: Unknown storage engine 'a.MYISAM'
 | 
						|
set default_storage_engine = 'a.MYISAM';
 | 
						|
ERROR 42000: Unknown storage engine 'a.MYISAM'
 | 
						|
set default_storage_engine = `a.MYISAM`;
 | 
						|
ERROR 42000: Unknown storage engine 'a.MYISAM'
 | 
						|
CREATE TABLE t1 (s VARCHAR(100));
 | 
						|
CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW
 | 
						|
SET default_storage_engine = NEW.INNODB;
 | 
						|
ERROR 42S22: Unknown column 'INNODB' in 'NEW'
 | 
						|
DROP TABLE t1;
 | 
						|
select 0==0;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '=0' at line 1
 | 
						|
select 1=!0,  1 = ! 0;
 | 
						|
1=!0	1 = ! 0
 | 
						|
1	1
 | 
						|
select !!0,     ! ! 0;
 | 
						|
!!0	! ! 0
 | 
						|
0	0
 | 
						|
select 2>!0,  2 > ! 0;
 | 
						|
2>!0	2 > ! 0
 | 
						|
1	1
 | 
						|
select 0<=!0, 0 <= !0;
 | 
						|
0<=!0	0 <= !0
 | 
						|
1	1
 | 
						|
select 1<<!0, 1 << !0;
 | 
						|
1<<!0	1 << !0
 | 
						|
2	2
 | 
						|
select 0<!0,  0 < ! 0;
 | 
						|
0<!0	0 < ! 0
 | 
						|
1	1
 | 
						|
#
 | 
						|
# MDEV-7792 - SQL Parsing Error - UNION AND ORDER BY WITH JOIN
 | 
						|
#
 | 
						|
CREATE TABLE t1(a INT);
 | 
						|
SELECT * FROM t1 JOIN ((SELECT 1 AS b) UNION ALL (SELECT 2 AS b) ORDER BY b DESC) s1 WHERE a=1;
 | 
						|
a	b
 | 
						|
DROP TABLE t1;
 | 
						|
#
 | 
						|
# Test of collective fix for three parser bugs:
 | 
						|
#
 | 
						|
# Bug #17727401, Bug #17426017, Bug #17473479:
 | 
						|
#   The server accepts wrong syntax and then fails in different ways
 | 
						|
#
 | 
						|
CREATE TABLE t1 (i INT);
 | 
						|
# bug #17426017
 | 
						|
SELECT (SELECT EXISTS(SELECT * LIMIT 1 ORDER BY VALUES (c00)));
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY VALUES (c00)))' at line 1
 | 
						|
# bug#17473479
 | 
						|
CREATE TABLE a(a int);
 | 
						|
CREATE TABLE b(a int);
 | 
						|
DELETE FROM b ORDER BY(SELECT 1 FROM a ORDER BY a ORDER BY a);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY a)' at line 1
 | 
						|
DROP TABLE a, b;
 | 
						|
# bug #17727401
 | 
						|
SELECT '' IN (SELECT '1' c FROM t1 ORDER BY '' ORDER BY '') FROM t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY '') FROM t1' at line 1
 | 
						|
# regression & coverage tests
 | 
						|
# uniform syntax for FROM DUAL clause:
 | 
						|
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
FOR UPDATE;
 | 
						|
1
 | 
						|
1
 | 
						|
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
PROCEDURE ANALYSE() FOR UPDATE;
 | 
						|
ERROR HY000: Can't use ORDER clause with this procedure
 | 
						|
SELECT 1 FROM
 | 
						|
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
FOR UPDATE) a;
 | 
						|
1
 | 
						|
1
 | 
						|
SELECT 1 FROM
 | 
						|
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
PROCEDURE ANALYSE() FOR UPDATE) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE) a' at line 3
 | 
						|
SELECT 1 FROM t1
 | 
						|
WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
FOR UPDATE);
 | 
						|
1
 | 
						|
SELECT 1 FROM t1
 | 
						|
WHERE EXISTS(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
PROCEDURE ANALYSE() FOR UPDATE);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE)' at line 3
 | 
						|
SELECT 1 FROM t1
 | 
						|
UNION
 | 
						|
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
FOR UPDATE;
 | 
						|
1
 | 
						|
1
 | 
						|
SELECT 1 FROM t1
 | 
						|
UNION
 | 
						|
SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
PROCEDURE ANALYSE() FOR UPDATE;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE' at line 4
 | 
						|
SELECT 1 FROM DUAL PROCEDURE ANALYSE() 
 | 
						|
UNION
 | 
						|
SELECT 1 FROM t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
 | 
						|
SELECT 1 FROM t1' at line 2
 | 
						|
(SELECT 1 FROM t1)
 | 
						|
UNION 
 | 
						|
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
FOR UPDATE);
 | 
						|
1
 | 
						|
1
 | 
						|
(SELECT 1 FROM t1)
 | 
						|
UNION 
 | 
						|
(SELECT 1 FROM DUAL WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1
 | 
						|
PROCEDURE ANALYSE() FOR UPDATE);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE() FOR UPDATE)' at line 4
 | 
						|
# "FOR UPDATE" tests
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1;
 | 
						|
1
 | 
						|
SELECT 1 FROM t1 FOR UPDATE UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1;
 | 
						|
1
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 FOR UPDATE;
 | 
						|
1
 | 
						|
# "INTO" clause tests
 | 
						|
SELECT 1 FROM t1 INTO @var17727401;
 | 
						|
Warnings:
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
SELECT 1 FROM DUAL INTO @var17727401;
 | 
						|
SELECT 1 INTO @var17727401;
 | 
						|
SELECT 1 INTO @var17727401 FROM t1;
 | 
						|
Warnings:
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
SELECT 1 INTO @var17727401 FROM DUAL;
 | 
						|
SELECT 1 INTO @var17727401_1 FROM t1 INTO @var17727401_2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401_2' at line 1
 | 
						|
SELECT 1 INTO @var17727401_1 FROM DUAL
 | 
						|
INTO @var17727401_2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401_2' at line 2
 | 
						|
SELECT 1 INTO @var17727401 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1;
 | 
						|
Warnings:
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
SELECT 1 FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1 INTO @var17727401;
 | 
						|
Warnings:
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
SELECT 1 FROM t1 WHERE 1 INTO @var17727401 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1' at line 1
 | 
						|
SELECT 1 INTO @var17727401_1
 | 
						|
FROM t1 WHERE 1 GROUP BY 1 HAVING 1 ORDER BY 1 LIMIT 1
 | 
						|
INTO @var17727401_2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401_2' at line 3
 | 
						|
SELECT (SELECT 1 FROM t1 INTO @var17727401);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 INTO @var17727401) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401) a' at line 1
 | 
						|
SELECT EXISTS(SELECT 1 FROM t1 INTO @var17727401);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401)' at line 1
 | 
						|
SELECT 1 FROM t1 INTO @var17727401 UNION SELECT 1 FROM t1 INTO t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 INTO t1' at line 1
 | 
						|
(SELECT 1 FROM t1 INTO @var17727401) UNION (SELECT 1 FROM t1 INTO t1);
 | 
						|
ERROR HY000: Incorrect usage of UNION and INTO
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 INTO @var17727401;
 | 
						|
Warnings:
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
SELECT 1 INTO @var17727401 FROM t1 PROCEDURE ANALYSE();
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PROCEDURE ANALYSE()' at line 1
 | 
						|
SELECT 1 FROM t1 PROCEDURE ANALYSE() INTO @var17727401;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INTO @var17727401' at line 1
 | 
						|
# ORDER and LIMIT clause combinations
 | 
						|
(SELECT 1 FROM t1 ORDER BY 1) ORDER BY 1;
 | 
						|
1
 | 
						|
(SELECT 1 FROM t1 LIMIT 1) LIMIT 1;
 | 
						|
1
 | 
						|
((SELECT 1 FROM t1 ORDER BY 1) ORDER BY 1) ORDER BY 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1) ORDER BY 1' at line 1
 | 
						|
((SELECT 1 FROM t1 LIMIT 1) LIMIT 1) LIMIT 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 1) LIMIT 1' at line 1
 | 
						|
(SELECT 1 FROM t1 ORDER BY 1) LIMIT 1;
 | 
						|
1
 | 
						|
(SELECT 1 FROM t1 LIMIT 1) ORDER BY 1;
 | 
						|
1
 | 
						|
((SELECT 1 FROM t1 ORDER BY 1) LIMIT 1) ORDER BY 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 1) ORDER BY 1)' at line 1
 | 
						|
((SELECT 1 FROM t1 LIMIT 1) ORDER BY 1) LIMIT 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1) LIMIT 1)' at line 1
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1;
 | 
						|
1
 | 
						|
SELECT (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1);
 | 
						|
(SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1)
 | 
						|
NULL
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1) a;
 | 
						|
1
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1;
 | 
						|
1
 | 
						|
SELECT (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1);
 | 
						|
(SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1)
 | 
						|
NULL
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1) a;
 | 
						|
1
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1;
 | 
						|
1
 | 
						|
SELECT (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1);
 | 
						|
(SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1)
 | 
						|
NULL
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 ORDER BY 1 LIMIT 1) a;
 | 
						|
1
 | 
						|
SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1 ORDER BY 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1 ORDER BY 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 UNION SELECT 1 FROM t1 LIMIT 1 ORDER BY 1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1) a' at line 1
 | 
						|
SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1) a' at line 1
 | 
						|
SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1) a' at line 1
 | 
						|
SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 LIMIT 1 UNION SELECT 1 FROM t1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1) a' at line 1
 | 
						|
SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1 UNION SELECT 1 FROM t1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1 UNION SELECT 1 FROM t1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 ORDER BY 1 UNION SELECT 1 FROM t1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY 1 UNION SELECT 1 FROM t1) a' at line 1
 | 
						|
SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 ORDER BY 1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1) a' at line 1
 | 
						|
SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 LIMIT 1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1) a' at line 1
 | 
						|
SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 LIMIT 1 UNION SELECT 1 FROM t1 ORDER BY 1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 ORDER BY 1) a' at line 1
 | 
						|
SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1' at line 1
 | 
						|
SELECT (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1)' at line 1
 | 
						|
SELECT 1 FROM (SELECT 1 FROM t1 ORDER BY 1 UNION SELECT 1 FROM t1 LIMIT 1) a;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 1 FROM t1 LIMIT 1) a' at line 1
 | 
						|
DROP TABLE t1;
 | 
						|
#
 | 
						|
# MDEV-8380: Subquery parse error
 | 
						|
#
 | 
						|
CREATE TABLE t1 ( a INT);
 | 
						|
INSERT INTO t1 VALUES ( 2 );
 | 
						|
SELECT *
 | 
						|
FROM ( (SELECT a FROM t1 ORDER BY a) UNION (SELECT 1 as b ORDER BY b ) ) AS a1
 | 
						|
WHERE a1.a = 1 OR a1.a = 2;
 | 
						|
a
 | 
						|
2
 | 
						|
1
 | 
						|
DROP TABLE t1;
 | 
						|
#
 | 
						|
# MDEV-10080 Derived tables allow double LIMIT clause
 | 
						|
#
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (1),(2),(3);
 | 
						|
SELECT * FROM  (SELECT * FROM t1 LIMIT 1 LIMIT 2) t1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 2) t1' at line 1
 | 
						|
DROP TABLE t1;
 | 
						|
#
 | 
						|
# MDEV-10109 Disallow syntactically INSERT .. SELECT .. {ORDER BY ..| LIMIT ..} .. UNION ..
 | 
						|
#
 | 
						|
INSERT INTO t1 SELECT 1 ORDER BY 1 UNION SELECT 2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 2' at line 1
 | 
						|
INSERT INTO t1 SELECT 1 LIMIT 1 UNION SELECT 2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 2' at line 1
 | 
						|
CREATE TABLE t1 AS SELECT 1 ORDER BY 1 UNION SELECT 2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 2' at line 1
 | 
						|
CREATE TABLE t1 AS SELECT 1 LIMIT 1 UNION SELECT 2;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION SELECT 2' at line 1
 | 
						|
#
 | 
						|
# MDEV-8909 union parser cleanup
 | 
						|
#
 | 
						|
# UNION with a non-parenthesized term
 | 
						|
# The following two queries return a wrong result
 | 
						|
# This will change when MDEV-10120 is fixed
 | 
						|
# For now, we're testing the parser.
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a);
 | 
						|
a
 | 
						|
1
 | 
						|
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a);
 | 
						|
a
 | 
						|
1
 | 
						|
DROP TABLE t1;
 | 
						|
# UNION with a parenthesed term
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 2);
 | 
						|
a
 | 
						|
1
 | 
						|
10
 | 
						|
20
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a));
 | 
						|
ERROR HY000: Invalid use of group function
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) LIMIT 1;
 | 
						|
ERROR HY000: Invalid use of group function
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a;
 | 
						|
ERROR HY000: Invalid use of group function
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a ORDER BY GROUP_CONCAT(a)) ORDER BY a LIMIT 1;
 | 
						|
ERROR HY000: Invalid use of group function
 | 
						|
DROP TABLE t1;
 | 
						|
# UNION with a parenthesized term with ROLLUP
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
 | 
						|
a
 | 
						|
1
 | 
						|
10
 | 
						|
20
 | 
						|
30
 | 
						|
NULL
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
 | 
						|
a
 | 
						|
1
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
 | 
						|
a
 | 
						|
NULL
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
 | 
						|
a
 | 
						|
1
 | 
						|
10
 | 
						|
20
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a));
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a));
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
DROP TABLE t1;
 | 
						|
# UNION with a non-parethesized term with ROLLUP
 | 
						|
# This will change after: MDEV-10120 Wrong result of UNION .. ORDER BY GROUP_CONCAT()
 | 
						|
# Currently we're testing the parser only
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a);
 | 
						|
a
 | 
						|
1
 | 
						|
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a);
 | 
						|
a
 | 
						|
1
 | 
						|
SELECT 1 AS a UNION SELECT a FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 1;
 | 
						|
a
 | 
						|
1
 | 
						|
DROP TABLE t1;
 | 
						|
# Derived table with ROLLUP
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1;
 | 
						|
a
 | 
						|
10
 | 
						|
20
 | 
						|
30
 | 
						|
NULL
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 LIMIT 1;
 | 
						|
a
 | 
						|
10
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY a;
 | 
						|
a
 | 
						|
NULL
 | 
						|
10
 | 
						|
20
 | 
						|
30
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY a LIMIT 1;
 | 
						|
a
 | 
						|
NULL
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY a DESC LIMIT 1;
 | 
						|
a
 | 
						|
30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY GROUP_CONCAT(a);
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
10	10,20,30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY GROUP_CONCAT(a ORDER BY a);
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
10	10,20,30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY GROUP_CONCAT(a) LIMIT 1;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
10	10,20,30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 1;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
10	10,20,30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a);
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
NULL	NULL
 | 
						|
10	10
 | 
						|
20	20
 | 
						|
30	30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a);
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
NULL	NULL
 | 
						|
10	10
 | 
						|
20	20
 | 
						|
30	30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a) DESC;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
30	30
 | 
						|
20	20
 | 
						|
10	10
 | 
						|
NULL	NULL
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a) DESC;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
30	30
 | 
						|
20	20
 | 
						|
10	10
 | 
						|
NULL	NULL
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a) LIMIT 1;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
NULL	NULL
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a) LIMIT 1;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
NULL	NULL
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a) DESC LIMIT 1;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
30	30
 | 
						|
SELECT a, GROUP_CONCAT(a) FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP) t1 GROUP BY a ORDER BY GROUP_CONCAT(a ORDER BY a) DESC LIMIT 1;
 | 
						|
a	GROUP_CONCAT(a)
 | 
						|
30	30
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a) t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a)) t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT * FROM (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a ORDER BY a)) t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
DROP TABLE t1;
 | 
						|
# Subquery, one row, ROLLUP
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10);
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL);
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL)
 | 
						|
NULL
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL);
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL)
 | 
						|
10
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1);
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1);
 | 
						|
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1);
 | 
						|
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL) FROM t1;
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NULL)
 | 
						|
NULL
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL) FROM t1;
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP HAVING a IS NOT NULL)
 | 
						|
10
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
 | 
						|
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
 | 
						|
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP);
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP);
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP) FROM t1;
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP) FROM t1;
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1);
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a));
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a) FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a)) FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
DROP TABLE t1;
 | 
						|
# Subquery, multiple rows, ROLLUP
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1);
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1);
 | 
						|
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1);
 | 
						|
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
 | 
						|
(SELECT * FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
10
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
 | 
						|
(SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
10
 | 
						|
10
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1) FROM t1;
 | 
						|
(SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP LIMIT 1)
 | 
						|
10
 | 
						|
10
 | 
						|
10
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP);
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP);
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP) FROM t1;
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT GROUP_CONCAT(a) FROM t1 GROUP BY a WITH ROLLUP) FROM t1;
 | 
						|
ERROR 21000: Subquery returns more than 1 row
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a);
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1);
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a));
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a) FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT * FROM t1 GROUP BY a WITH ROLLUP ORDER BY GROUP_CONCAT(a)) FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
SELECT (SELECT GROUP_CONCAT(a ORDER BY a) FROM t1 GROUP BY a WITH ROLLUP ORDER BY a LIMIT 1) AS a FROM t1;
 | 
						|
ERROR HY000: Incorrect usage of CUBE/ROLLUP and ORDER BY
 | 
						|
DROP TABLE t1;
 | 
						|
 | 
						|
MDEV-10101 Wrong error message of SELECT 1 UNION (SELECT 1 FROM t1 GROUP BY 1 WITH ROLLUP)
 | 
						|
 | 
						|
CREATE TABLE t1 (a INT);
 | 
						|
INSERT INTO t1 VALUES (10),(20),(30);
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP);
 | 
						|
a
 | 
						|
1
 | 
						|
10
 | 
						|
20
 | 
						|
30
 | 
						|
NULL
 | 
						|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1;
 | 
						|
a
 | 
						|
10
 | 
						|
20
 | 
						|
30
 | 
						|
NULL
 | 
						|
1
 | 
						|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1;
 | 
						|
a
 | 
						|
10
 | 
						|
20
 | 
						|
30
 | 
						|
NULL
 | 
						|
1
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) LIMIT 1;
 | 
						|
a
 | 
						|
1
 | 
						|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1 LIMIT 1;
 | 
						|
a
 | 
						|
10
 | 
						|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1 LIMIT 1;
 | 
						|
a
 | 
						|
10
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP) ORDER BY a LIMIT 1;
 | 
						|
a
 | 
						|
NULL
 | 
						|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP) UNION SELECT 1 ORDER BY a LIMIT 1;
 | 
						|
a
 | 
						|
NULL
 | 
						|
SELECT a FROM t1 GROUP BY a WITH ROLLUP UNION SELECT 1 ORDER BY a LIMIT 1;
 | 
						|
a
 | 
						|
NULL
 | 
						|
SELECT 1 AS a UNION (SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2);
 | 
						|
a
 | 
						|
1
 | 
						|
10
 | 
						|
20
 | 
						|
(SELECT a FROM t1 GROUP BY a WITH ROLLUP LIMIT 2) UNION SELECT 1;
 | 
						|
a
 | 
						|
10
 | 
						|
20
 | 
						|
1
 | 
						|
DROP TABLE t1;
 | 
						|
#
 | 
						|
# MDEV-10779 Failing assertion lex->proc_list.elements == 0 or syntax error on PROCEDURE ANALYSE in UNION
 | 
						|
#
 | 
						|
CREATE TABLE t1 (i INT);
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
 | 
						|
UNION
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10));
 | 
						|
ERROR HY000: Incorrect usage of UNION and SELECT ... PROCEDURE ANALYSE()
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
 | 
						|
UNION
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10);
 | 
						|
ERROR HY000: Incorrect usage of UNION and SELECT ... PROCEDURE ANALYSE()
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
 | 
						|
UNION
 | 
						|
(SELECT 1);
 | 
						|
ERROR HY000: Incorrect usage of UNION and SELECT ... PROCEDURE ANALYSE()
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))
 | 
						|
UNION
 | 
						|
SELECT 1;
 | 
						|
ERROR HY000: Incorrect usage of UNION and SELECT ... PROCEDURE ANALYSE()
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)
 | 
						|
UNION
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10));
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
 | 
						|
(SELECT * FROM t1 PROCEDURE ANALYSE(10, 10))' at line 2
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)
 | 
						|
UNION
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)' at line 2
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)
 | 
						|
UNION
 | 
						|
(SELECT 1);
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
 | 
						|
(SELECT 1)' at line 2
 | 
						|
SELECT * FROM t1 PROCEDURE ANALYSE(10, 10)
 | 
						|
UNION
 | 
						|
SELECT 1;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UNION
 | 
						|
SELECT 1' at line 2
 | 
						|
DROP TABLE t1;
 |