summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy364
1 files changed, 160 insertions, 204 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 357ba41046c..33c0a4d1758 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -72,339 +72,220 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token END_OF_INPUT
-%token ACTION
+%token EQ
+%token EQUAL_SYM
+%token GE
+%token GT_SYM
+%token LE
+%token LT
+%token NE
+%token IS
+%token SHIFT_LEFT
+%token SHIFT_RIGHT
+%token SET_VAR
+
+%token AVG_SYM
+%token COUNT_SYM
+%token MAX_SYM
+%token MIN_SYM
+%token SUM_SYM
+%token STD_SYM
+
%token ADD
+%token ALTER
%token AFTER_SYM
-%token AGAINST
+%token ANALYZE_SYM
+%token BEGIN_SYM
+%token CHANGE
+%token COMMENT_SYM
+%token COMMIT_SYM
+%token CREATE
+%token CROSS
+%token DELETE_SYM
+%token DROP
+%token INSERT
+%token FLUSH_SYM
+%token SELECT_SYM
+%token MASTER_SYM
+%token REPAIR
+%token RESET_SYM
+%token PURGE
+%token SLAVE
+%token START_SYM
+%token STOP_SYM
+%token TRUNCATE_SYM
+%token ROLLBACK_SYM
+%token OPTIMIZE
+%token SHOW
+%token UPDATE_SYM
+%token KILL_SYM
+%token LOAD
+%token LOCK_SYM
+%token UNLOCK_SYM
+
+%token ACTION
%token AGGREGATE_SYM
%token ALL
-%token ALTER
-%token ANALYZE_SYM
%token AND
%token AS
%token ASC
-%token ATAN
-%token AUTOCOMMIT
%token AUTO_INC
+%token AUTOCOMMIT
%token AVG_ROW_LENGTH
-%token AVG_SYM
-%token BACKUP_SYM
-%token BEGIN_SYM
-%token BENCHMARK_SYM
+%token BACKUP_SYM
%token BERKELEY_DB_SYM
-%token BETWEEN_SYM
-%token BIGINT
%token BINARY
-%token BIT_AND
-%token BIT_OR
%token BIT_SYM
-%token BLOB_SYM
%token BOOL_SYM
%token BOTH
%token BY
%token CASCADE
-%token CASE_SYM
-%token CHANGE
-%token CHANGED
-%token CHAR_SYM
%token CHECKSUM_SYM
%token CHECK_SYM
-%token COALESCE
-%token CLOSE_SYM
+%token COMMITTED_SYM
%token COLUMNS
%token COLUMN_SYM
-%token COMMENT_SYM
-%token COMMITTED_SYM
-%token COMMIT_SYM
-%token COMPRESSED_SYM
-%token CONCAT
-%token CONCAT_WS
+%token CONCURRENT
%token CONSTRAINT
-%token COUNT_SYM
-%token CREATE
-%token CROSS
-%token CURDATE
-%token CURTIME
-%token DATABASE
%token DATABASES
%token DATA_SYM
-%token DATETIME
-%token DATE_ADD_INTERVAL
-%token DATE_SUB_INTERVAL
-%token DATE_SYM
-%token DAY_HOUR_SYM
-%token DAY_MINUTE_SYM
-%token DAY_SECOND_SYM
-%token DAY_SYM
-%token DECIMAL_SYM
-%token DECODE_SYM
%token DEFAULT
%token DELAYED_SYM
%token DELAY_KEY_WRITE_SYM
-%token DELETE_SYM
%token DESC
%token DESCRIBE
%token DISTINCT
-%token DOUBLE_SYM
-%token DROP
-%token DUMPFILE
%token DYNAMIC_SYM
-%token ELSE
-%token ELT_FUNC
%token ENCLOSED
-%token ENCODE_SYM
-%token ENCRYPT
-%token END
-%token ENUM
-%token EQ
-%token EQUAL_SYM
%token ESCAPED
%token ESCAPE_SYM
%token EXISTS
-%token EXPORT_SET
%token EXTENDED_SYM
-%token EXTRACT_SYM
-%token FAST_SYM
-%token FIELD_FUNC
%token FILE_SYM
%token FIRST_SYM
%token FIXED_SYM
%token FLOAT_NUM
-%token FLOAT_SYM
-%token FLUSH_SYM
%token FOREIGN
-%token FORMAT_SYM
-%token FOR_SYM
%token FROM
-%token FROM_UNIXTIME
%token FULL
-%token FULLTEXT_SYM
-%token FUNC_ARG0
-%token FUNC_ARG1
-%token FUNC_ARG2
-%token FUNC_ARG3
-%token GE
+%token FULLTEXT_SYM
+%token GEMINI_SYM
%token GEMINI_SPIN_RETRIES
-%token GEMINI_SYM
-%token GLOBAL_SYM
+%token GLOBAL_SYM
%token GRANT
%token GRANTS
%token GREATEST_SYM
%token GROUP
-%token GROUP_UNIQUE_USERS
-%token GT_SYM
%token HAVING
-%token HANDLER_SYM
%token HEAP_SYM
%token HEX_NUM
%token HIGH_PRIORITY
%token HOSTS_SYM
-%token HOUR_MINUTE_SYM
-%token HOUR_SECOND_SYM
-%token HOUR_SYM
%token IDENT
-%token IDENTIFIED_SYM
-%token IF
%token IGNORE_SYM
%token INDEX
%token INFILE
%token INNER_SYM
%token INNOBASE_SYM
-%token INSERT
-%token INSERT_ID
-%token INTERVAL_SYM
%token INTO
-%token INT_SYM
%token IN_SYM
-%token IS
+%token ISOLATION
%token ISAM_SYM
-%token ISOLATION
%token JOIN_SYM
%token KEYS
%token KEY_SYM
-%token KILL_SYM
-%token LAST_INSERT_ID
-%token LAST_SYM
-%token LE
%token LEADING
%token LEAST_SYM
-%token LEFT
-%token LEVEL_SYM
+%token LEVEL_SYM
%token LEX_HOSTNAME
%token LIKE
-%token LIMIT
%token LINES
-%token LOAD
%token LOCAL_SYM
-%token LOCATE
-%token LOCK_SYM
%token LOGS_SYM
-%token LONGBLOB
-%token LONGTEXT
%token LONG_NUM
%token LONG_SYM
%token LOW_PRIORITY
-%token LT
-%token MAKE_SET_SYM
-%token MASTER_CONNECT_RETRY_SYM
-%token MASTER_HOST_SYM
-%token MASTER_LOG_FILE_SYM
-%token MASTER_LOG_POS_SYM
-%token MASTER_PASSWORD_SYM
-%token MASTER_PORT_SYM
-%token MASTER_SYM
-%token MASTER_USER_SYM
+%token MASTER_HOST_SYM
+%token MASTER_USER_SYM
+%token MASTER_LOG_FILE_SYM
+%token MASTER_LOG_POS_SYM
+%token MASTER_PASSWORD_SYM
+%token MASTER_PORT_SYM
+%token MASTER_CONNECT_RETRY_SYM
%token MATCH
%token MAX_ROWS
-%token MAX_SYM
-%token MEDIUMBLOB
-%token MEDIUMINT
-%token MEDIUMTEXT
%token MEDIUM_SYM
%token MERGE_SYM
-%token MINUTE_SECOND_SYM
-%token MINUTE_SYM
%token MIN_ROWS
-%token MIN_SYM
-%token MODE_SYM
-%token MODIFY_SYM
-%token MONTH_SYM
%token MYISAM_SYM
%token NATIONAL_SYM
%token NATURAL
%token NCHAR_SYM
-%token NE
-%token NEXT_SYM
%token NOT
-%token NOW_SYM
%token NO_SYM
%token NULL_SYM
%token NUM
-%token NUMERIC_SYM
%token ON
%token OPEN_SYM
-%token OPTIMIZE
%token OPTION
%token OPTIONALLY
%token OR
-%token ORDER_SYM
%token OR_OR_CONCAT
+%token ORDER_SYM
%token OUTER
%token OUTFILE
+%token DUMPFILE
%token PACK_KEYS_SYM
%token PARTIAL
-%token PASSWORD
-%token POSITION_SYM
-%token PRECISION
-%token PREV_SYM
%token PRIMARY_SYM
%token PRIVILEGES
-%token PROCEDURE
%token PROCESS
%token PROCESSLIST_SYM
-%token PURGE
-%token QUICK
%token RAID_0_SYM
-%token RAID_CHUNKS
-%token RAID_CHUNKSIZE
%token RAID_STRIPED_SYM
%token RAID_TYPE
-%token RAND
+%token RAID_CHUNKS
+%token RAID_CHUNKSIZE
%token READ_SYM
-%token REAL
%token REAL_NUM
%token REFERENCES
%token REGEXP
%token RELOAD
%token RENAME
-%token REPAIR
%token REPEATABLE_SYM
-%token REPLACE
-%token RESET_SYM
-%token RESTORE_SYM
+%token RESTORE_SYM
%token RESTRICT
%token REVOKE
-%token RIGHT
-%token ROLLBACK_SYM
-%token ROUND
%token ROWS_SYM
%token ROW_FORMAT_SYM
%token ROW_SYM
-%token SECOND_SYM
-%token SELECT_SYM
+%token SET
%token SERIALIZABLE_SYM
%token SESSION_SYM
-%token SET
-%token SET_VAR
-%token SHARE_SYM
-%token SHIFT_LEFT
-%token SHIFT_RIGHT
-%token SHOW
%token SHUTDOWN
-%token SLAVE
-%token SMALLINT
-%token SQL_AUTO_IS_NULL
-%token SQL_BIG_RESULT
-%token SQL_BIG_SELECTS
-%token SQL_BIG_TABLES
-%token SQL_BUFFER_RESULT
-%token SQL_LOG_BIN
-%token SQL_LOG_OFF
-%token SQL_LOG_UPDATE
-%token SQL_LOW_PRIORITY_UPDATES
-%token SQL_MAX_JOIN_SIZE
-%token SQL_QUOTE_SHOW_CREATE
-%token SQL_SAFE_UPDATES
-%token SQL_SELECT_LIMIT
-%token SQL_SMALL_RESULT
-%token SQL_WARNINGS
%token STARTING
-%token START_SYM
%token STATUS_SYM
-%token STD_SYM
-%token STOP_SYM
%token STRAIGHT_JOIN
-%token STRING_SYM
-%token SUBSTRING
-%token SUBSTRING_INDEX
-%token SUM_SYM
%token TABLES
%token TABLE_SYM
%token TEMPORARY
%token TERMINATED
%token TEXT_STRING
-%token TEXT_SYM
-%token THEN_SYM
-%token TIMESTAMP
-%token TIME_SYM
-%token TINYBLOB
-%token TINYINT
-%token TINYTEXT
%token TO_SYM
%token TRAILING
%token TRANSACTION_SYM
-%token TRIM
-%token TRUNCATE_SYM
%token TYPE_SYM
-%token UDA_CHAR_SUM
-%token UDA_FLOAT_SUM
-%token UDA_INT_SUM
-%token UDF_CHAR_FUNC
-%token UDF_FLOAT_FUNC
-%token UDF_INT_FUNC
+%token FUNC_ARG0
+%token FUNC_ARG1
+%token FUNC_ARG2
+%token FUNC_ARG3
%token UDF_RETURNS_SYM
%token UDF_SONAME_SYM
%token UDF_SYM
-%token UNCOMMITTED_SYM
+%token UNCOMMITTED_SYM
%token UNION_SYM
%token UNIQUE_SYM
-%token UNIQUE_USERS
-%token UNIX_TIMESTAMP
-%token UNLOCK_SYM
-%token UNSIGNED
-%token UPDATE_SYM
%token USAGE
-%token USER
%token USE_SYM
%token USING
%token VALUES
@@ -418,6 +299,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token BLOB_SYM
%token CHAR_SYM
%token CHANGED
+%token COALESCE
%token DATETIME
%token DATE_SYM
%token DECIMAL_SYM
@@ -426,6 +308,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token FAST_SYM
%token FLOAT_SYM
%token INT_SYM
+%token LIMIT
%token LONGBLOB
%token LONGTEXT
%token MEDIUMBLOB
@@ -446,18 +329,85 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token UNSIGNED
%token VARBINARY
%token VARCHAR
-%token VARIABLES
%token VARYING
+%token ZEROFILL
+
+%token AGAINST
+%token ATAN
+%token BETWEEN_SYM
+%token BIT_AND
+%token BIT_OR
+%token CASE_SYM
+%token CONCAT
+%token CONCAT_WS
+%token CURDATE
+%token CURTIME
+%token DATABASE
+%token DATE_ADD_INTERVAL
+%token DATE_SUB_INTERVAL
+%token DAY_HOUR_SYM
+%token DAY_MINUTE_SYM
+%token DAY_SECOND_SYM
+%token DAY_SYM
+%token DECODE_SYM
+%token ELSE
+%token ELT_FUNC
+%token ENCODE_SYM
+%token ENCRYPT
+%token EXPORT_SET
+%token EXTRACT_SYM
+%token FIELD_FUNC
+%token FORMAT_SYM
+%token FOR_SYM
+%token FROM_UNIXTIME
+%token GROUP_UNIQUE_USERS
+%token HOUR_MINUTE_SYM
+%token HOUR_SECOND_SYM
+%token HOUR_SYM
+%token IDENTIFIED_SYM
+%token IF
+%token INSERT_ID
+%token INTERVAL_SYM
+%token LAST_INSERT_ID
+%token LEFT
+%token LOCATE
+%token MAKE_SET_SYM
+%token MINUTE_SECOND_SYM
+%token MINUTE_SYM
+%token MODE_SYM
+%token MODIFY_SYM
+%token MONTH_SYM
+%token NOW_SYM
+%token PASSWORD
+%token POSITION_SYM
+%token PROCEDURE
+%token RAND
+%token REPLACE
+%token RIGHT
+%token ROUND
+%token SECOND_SYM
+%token SHARE_SYM
+%token SUBSTRING
+%token SUBSTRING_INDEX
+%token TRIM
+%token UDA_CHAR_SUM
+%token UDA_FLOAT_SUM
+%token UDA_INT_SUM
+%token UDF_CHAR_FUNC
+%token UDF_FLOAT_FUNC
+%token UDF_INT_FUNC
+%token UNIQUE_USERS
+%token UNIX_TIMESTAMP
+%token USER
%token WEEK_SYM
%token WHEN_SYM
-%token WHERE
-%token WITH
-%token WORK_SYM
-%token WRITE_SYM
-%token YEARWEEK
+%token WORK_SYM
%token YEAR_MONTH_SYM
%token YEAR_SYM
-%token ZEROFILL
+%token YEARWEEK
+%token BENCHMARK_SYM
+%token END
+%token THEN_SYM
%token SQL_BIG_TABLES
%token SQL_BIG_SELECTS
@@ -472,7 +422,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token SQL_BUFFER_RESULT
%token SQL_WARNINGS
%token SQL_AUTO_IS_NULL
-%token SQL_CALC_FOUND_ROWS
%token SQL_SAFE_UPDATES
%token SQL_QUOTE_SHOW_CREATE
%token SQL_SLAVE_SKIP_COUNTER
@@ -2441,6 +2390,12 @@ opt_local:
/* empty */ { $$=0;}
| LOCAL_SYM { $$=1;}
+load_data_lock:
+ /* empty */ { Lex->lock_option= current_thd->update_lock_default; }
+ | CONCURRENT { Lex->lock_option= TL_WRITE_CONCURRENT_INSERT ; }
+ | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
+
+
opt_duplicate:
/* empty */ { Lex->duplicates=DUP_ERROR; }
| REPLACE { Lex->duplicates=DUP_REPLACE; }
@@ -2599,6 +2554,7 @@ keyword:
| COMMIT_SYM {}
| COMMITTED_SYM {}
| COMPRESSED_SYM {}
+ | CONCURRENT {}
| DATA_SYM {}
| DATETIME {}
| DATE_SYM {}