diff options
author | Dan Ungureanu <udan1107@gmail.com> | 2015-06-22 20:06:18 +0300 |
---|---|---|
committer | Dan Ungureanu <udan1107@gmail.com> | 2015-06-22 20:06:18 +0300 |
commit | cb58d8c0eea3ffda06f96d7131bbcf90a6e602ab (patch) | |
tree | bd42c95885d3713c07c6f8aeab90c5d73075263a | |
parent | 928478f86310f767a8948786470ac895b714cae3 (diff) | |
download | sql-parser-cb58d8c0eea3ffda06f96d7131bbcf90a6e602ab.zip sql-parser-cb58d8c0eea3ffda06f96d7131bbcf90a6e602ab.tar.gz sql-parser-cb58d8c0eea3ffda06f96d7131bbcf90a6e602ab.tar.bz2 |
Added table utilities.
Refactoring and bug fixing.
52 files changed, 1090 insertions, 1202 deletions
diff --git a/src/Context.php b/src/Context.php index b04adc1..eed10d3 100644 --- a/src/Context.php +++ b/src/Context.php @@ -3,7 +3,7 @@ namespace SqlParser; /** - * Default MySQL context (based on MySQL 5.7). + * Default MySQL context. * * @category Contexts * @package SqlParser @@ -72,225 +72,7 @@ abstract class Context * * @var array */ - public static $KEYWORDS = array( - 'AS' => 1, 'BY' => 1, 'IF' => 1, 'IN' => 1, 'IS' => 1, - 'ON' => 1, 'OR' => 1, 'TO' => 1, - 'ADD' => 1, 'ALL' => 1, 'AND' => 1, 'ASC' => 1, 'DEC' => 1, - 'DIV' => 1, 'FOR' => 1, 'GET' => 1, 'INT' => 1, 'KEY' => 1, - 'MOD' => 1, 'NOT' => 1, 'OUT' => 1, 'SET' => 1, 'SQL' => 1, - 'SSL' => 1, 'USE' => 1, 'XOR' => 1, - 'BLOB' => 1, 'BOTH' => 1, 'CALL' => 1, 'CASE' => 1, - 'CHAR' => 1, 'DESC' => 1, 'DROP' => 1, 'DUAL' => 1, - 'EACH' => 1, 'ELSE' => 1, 'EXIT' => 1, 'FROM' => 1, - 'INT1' => 1, 'INT2' => 1, 'INT3' => 1, 'INT4' => 1, - 'INT8' => 1, 'INTO' => 1, 'JOIN' => 1, 'KEYS' => 1, - 'KILL' => 1, 'LEFT' => 1, 'LIKE' => 1, 'LOAD' => 1, - 'LOCK' => 1, 'LONG' => 1, 'LOOP' => 1, 'NULL' => 1, - 'READ' => 1, 'REAL' => 1, 'SHOW' => 1, 'THEN' => 1, - 'TRUE' => 1, 'UNDO' => 1, 'WHEN' => 1, 'WITH' => 1, - 'ALTER' => 1, 'CHECK' => 1, 'CROSS' => 1, 'FALSE' => 1, - 'FETCH' => 1, 'FLOAT' => 1, 'FORCE' => 1, 'GRANT' => 1, - 'GROUP' => 1, 'INDEX' => 1, 'INNER' => 1, 'INOUT' => 1, - 'LEAVE' => 1, 'LIMIT' => 1, 'LINES' => 1, 'MATCH' => 1, - 'ORDER' => 1, 'OUTER' => 1, 'PURGE' => 1, 'RANGE' => 1, - 'READS' => 1, 'RIGHT' => 1, 'RLIKE' => 1, 'TABLE' => 1, - 'UNION' => 1, 'USAGE' => 1, 'USING' => 1, 'WHERE' => 1, - 'WHILE' => 1, 'WRITE' => 1, - 'BEFORE' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'CHANGE' => 1, - 'COLUMN' => 1, 'CREATE' => 1, 'CURSOR' => 1, 'DELETE' => 1, - 'DOUBLE' => 1, 'ELSEIF' => 1, 'EXISTS' => 1, 'FLOAT4' => 1, - 'FLOAT8' => 1, 'HAVING' => 1, 'IGNORE' => 1, 'INFILE' => 1, - 'INSERT' => 1, 'LINEAR' => 1, 'OPTION' => 1, 'REGEXP' => 1, - 'RENAME' => 1, 'REPEAT' => 1, 'RETURN' => 1, 'REVOKE' => 1, - 'SCHEMA' => 1, 'SELECT' => 1, 'SIGNAL' => 1, 'STORED' => 1, - 'UNIQUE' => 1, 'UNLOCK' => 1, 'UPDATE' => 1, 'VALUES' => 1, - 'ANALYZE' => 1, 'BETWEEN' => 1, 'CASCADE' => 1, 'COLLATE' => 1, - 'CONVERT' => 1, 'DECIMAL' => 1, 'DECLARE' => 1, 'DEFAULT' => 1, - 'DELAYED' => 1, 'ESCAPED' => 1, 'EXPLAIN' => 1, 'FOREIGN' => 1, - 'INTEGER' => 1, 'ITERATE' => 1, 'LEADING' => 1, 'NATURAL' => 1, - 'NUMERIC' => 1, 'OUTFILE' => 1, 'PRIMARY' => 1, 'RELEASE' => 1, - 'REPLACE' => 1, 'REQUIRE' => 1, 'SCHEMAS' => 1, 'SPATIAL' => 1, - 'TINYINT' => 1, 'TRIGGER' => 1, 'VARCHAR' => 1, 'VARYING' => 1, - 'VIRTUAL' => 1, - 'CONTINUE' => 1, 'DATABASE' => 1, 'DAY_HOUR' => 1, - 'DESCRIBE' => 1, 'DISTINCT' => 1, 'ENCLOSED' => 1, - 'FULLTEXT' => 1, 'INTERVAL' => 1, 'LONGBLOB' => 1, - 'LONGTEXT' => 1, 'MAXVALUE' => 1, 'MODIFIES' => 1, - 'OPTIMIZE' => 1, 'RESIGNAL' => 1, 'RESTRICT' => 1, - 'SMALLINT' => 1, 'SPECIFIC' => 1, 'SQLSTATE' => 1, - 'STARTING' => 1, 'TINYBLOB' => 1, 'TINYTEXT' => 1, - 'TRAILING' => 1, 'UNSIGNED' => 1, 'UTC_DATE' => 1, - 'UTC_TIME' => 1, 'ZEROFILL' => 1, - 'CHARACTER' => 1, 'CONDITION' => 1, 'DATABASES' => 1, - 'GENERATED' => 1, 'LOCALTIME' => 1, 'MEDIUMINT' => 1, - 'MIDDLEINT' => 1, 'PARTITION' => 1, 'PRECISION' => 1, - 'PROCEDURE' => 1, 'SENSITIVE' => 1, 'SEPARATOR' => 1, - 'VARBINARY' => 1, - 'ACCESSIBLE' => 1, 'ASENSITIVE' => 1, 'CONSTRAINT' => 1, - 'DAY_MINUTE' => 1, 'DAY_SECOND' => 1, 'MEDIUMBLOB' => 1, - 'MEDIUMTEXT' => 1, 'OPTIONALLY' => 1, 'READ_WRITE' => 1, - 'REFERENCES' => 1, 'SQLWARNING' => 1, 'TERMINATED' => 1, - 'YEAR_MONTH' => 1, - 'DISTINCTROW' => 1, 'HOUR_MINUTE' => 1, 'HOUR_SECOND' => 1, - 'INSENSITIVE' => 1, 'MASTER_BIND' => 1, - 'CURRENT_DATE' => 1, 'CURRENT_TIME' => 1, 'CURRENT_USER' => 1, - 'LOW_PRIORITY' => 1, 'SQLEXCEPTION' => 1, 'VARCHARACTER' => 1, - 'DETERMINISTIC' => 1, 'HIGH_PRIORITY' => 1, 'MINUTE_SECOND' => 1, - 'STRAIGHT_JOIN' => 1, 'UTC_TIMESTAMP' => 1, - 'IO_AFTER_GTIDS' => 1, 'LOCALTIMESTAMP' => 1, 'SQL_BIG_RESULT' => 1, - 'DAY_MICROSECOND' => 1, 'IO_BEFORE_GTIDS' => 1, 'OPTIMIZER_COSTS' => 1, - 'HOUR_MICROSECOND' => 1, 'SQL_SMALL_RESULT' => 1, - 'CURRENT_TIMESTAMP' => 1, - 'MINUTE_MICROSECOND' => 1, 'NO_WRITE_TO_BINLOG' => 1, - 'SECOND_MICROSECOND' => 1, - 'SQL_CALC_FOUND_ROWS' => 1, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 1, - - 'AT' => 2, 'DO' => 2, 'IO' => 2, 'NO' => 2, 'XA' => 2, - 'ANY' => 2, 'AVG' => 2, 'BIT' => 2, 'CPU' => 2, 'DAY' => 2, 'END' => 2, - 'IPC' => 2, 'NDB' => 2, 'NEW' => 2, 'ONE' => 2, 'ROW' => 2, 'XID' => 2, - 'XML' => 2, - 'BOOL' => 2, 'BYTE' => 2, 'CODE' => 2, 'CUBE' => 2, 'DATA' => 2, 'DATE' => 2, - 'DISK' => 2, 'ENDS' => 2, 'ENUM' => 2, 'FAST' => 2, 'FILE' => 2, 'FULL' => 2, - 'HASH' => 2, 'HELP' => 2, 'HOST' => 2, 'HOUR' => 2, 'LAST' => 2, 'LESS' => 2, - 'LIST' => 2, 'LOGS' => 2, 'MODE' => 2, 'NAME' => 2, 'NEXT' => 2, 'NONE' => 2, - 'ONLY' => 2, 'OPEN' => 2, 'PAGE' => 2, 'PORT' => 2, 'PREV' => 2, 'ROWS' => 2, - 'SLOW' => 2, 'SOME' => 2, 'STOP' => 2, 'TEXT' => 2, 'THAN' => 2, 'TIME' => 2, - 'TYPE' => 2, 'USER' => 2, 'VIEW' => 2, 'WAIT' => 2, 'WEEK' => 2, 'WORK' => 2, - 'X509' => 2, 'YEAR' => 2, - 'AFTER' => 2, 'ASCII' => 2, 'BEGIN' => 2, 'BLOCK' => 2, 'BTREE' => 2, - 'CACHE' => 2, 'CHAIN' => 2, 'CLOSE' => 2, 'ERROR' => 2, 'EVENT' => 2, - 'EVERY' => 2, 'FIRST' => 2, 'FIXED' => 2, 'FLUSH' => 2, 'FOUND' => 2, - 'HOSTS' => 2, 'LEVEL' => 2, 'LOCAL' => 2, 'LOCKS' => 2, 'MERGE' => 2, - 'MONTH' => 2, 'MUTEX' => 2, 'NAMES' => 2, 'NCHAR' => 2, 'NEVER' => 2, - 'OWNER' => 2, 'PHASE' => 2, 'POINT' => 2, 'PROXY' => 2, 'QUERY' => 2, - 'QUICK' => 2, 'RELAY' => 2, 'RESET' => 2, 'RTREE' => 2, 'SHARE' => 2, - 'SLAVE' => 2, 'START' => 2, 'SUPER' => 2, 'SWAPS' => 2, 'TYPES' => 2, - 'UNTIL' => 2, 'VALUE' => 2, - 'ACTION' => 2, 'ALWAYS' => 2, 'BACKUP' => 2, 'BINLOG' => 2, 'CIPHER' => 2, - 'CLIENT' => 2, 'COMMIT' => 2, 'ENABLE' => 2, 'ENGINE' => 2, 'ERRORS' => 2, - 'ESCAPE' => 2, 'EVENTS' => 2, 'EXPIRE' => 2, 'EXPORT' => 2, 'FAULTS' => 2, - 'FIELDS' => 2, 'FILTER' => 2, 'FORMAT' => 2, 'GLOBAL' => 2, 'GRANTS' => 2, - 'IMPORT' => 2, 'ISSUER' => 2, 'LEAVES' => 2, 'MASTER' => 2, 'MEDIUM' => 2, - 'MEMORY' => 2, 'MINUTE' => 2, 'MODIFY' => 2, 'NUMBER' => 2, 'OFFSET' => 2, - 'PARSER' => 2, 'PLUGIN' => 2, 'RELOAD' => 2, 'REMOVE' => 2, 'REPAIR' => 2, - 'RESUME' => 2, 'ROLLUP' => 2, 'SECOND' => 2, 'SERIAL' => 2, 'SERVER' => 2, - 'SIGNED' => 2, 'SIMPLE' => 2, 'SOCKET' => 2, 'SONAME' => 2, 'SOUNDS' => 2, - 'SOURCE' => 2, 'STARTS' => 2, 'STATUS' => 2, 'STRING' => 2, 'TABLES' => 2, - 'ACCOUNT' => 2, 'AGAINST' => 2, 'ANALYSE' => 2, 'BOOLEAN' => 2, 'CHANGED' => 2, - 'CHANNEL' => 2, 'CHARSET' => 2, 'COLUMNS' => 2, 'COMMENT' => 2, 'COMPACT' => 2, - 'CONTEXT' => 2, 'CURRENT' => 2, 'DEFINER' => 2, 'DISABLE' => 2, 'DISCARD' => 2, - 'DYNAMIC' => 2, 'ENGINES' => 2, 'EXECUTE' => 2, 'FOLLOWS' => 2, 'GENERAL' => 2, - 'HANDLER' => 2, 'INDEXES' => 2, 'INSTALL' => 2, 'INVOKER' => 2, 'LOGFILE' => 2, - 'MIGRATE' => 2, 'NO_WAIT' => 2, 'OPTIONS' => 2, 'PARTIAL' => 2, 'PLUGINS' => 2, - 'POLYGON' => 2, 'PREPARE' => 2, 'PROFILE' => 2, 'QUARTER' => 2, 'REBUILD' => 2, - 'RECOVER' => 2, 'RESTORE' => 2, 'RETURNS' => 2, 'REVERSE' => 2, 'ROUTINE' => 2, - 'SESSION' => 2, 'STACKED' => 2, 'STORAGE' => 2, 'SUBJECT' => 2, 'SUSPEND' => 2, - 'UNICODE' => 2, 'UNKNOWN' => 2, 'UPGRADE' => 2, 'USE_FRM' => 2, 'WITHOUT' => 2, - 'WRAPPER' => 2, - 'CASCADED' => 2, 'CHECKSUM' => 2, 'COALESCE' => 2, 'CONTAINS' => 2, - 'DATAFILE' => 2, 'DATETIME' => 2, 'DUMPFILE' => 2, 'EXCHANGE' => 2, - 'EXTENDED' => 2, 'FUNCTION' => 2, 'GEOMETRY' => 2, 'LANGUAGE' => 2, - 'MAX_ROWS' => 2, 'MAX_SIZE' => 2, 'MIN_ROWS' => 2, 'NATIONAL' => 2, - 'NVARCHAR' => 2, 'PASSWORD' => 2, 'PRECEDES' => 2, 'PRESERVE' => 2, - 'PROFILES' => 2, 'REDOFILE' => 2, 'RELAYLOG' => 2, 'ROLLBACK' => 2, - 'SCHEDULE' => 2, 'SECURITY' => 2, 'SHUTDOWN' => 2, 'SNAPSHOT' => 2, - 'SWITCHES' => 2, 'TRIGGERS' => 2, 'TRUNCATE' => 2, 'UNDOFILE' => 2, - 'WARNINGS' => 2, - 'AGGREGATE' => 2, 'ALGORITHM' => 2, 'COLLATION' => 2, 'COMMITTED' => 2, - 'DIRECTORY' => 2, 'DUPLICATE' => 2, 'EXPANSION' => 2, 'IO_THREAD' => 2, - 'ISOLATION' => 2, 'NODEGROUP' => 2, 'PACK_KEYS' => 2, 'READ_ONLY' => 2, - 'REDUNDANT' => 2, 'ROW_COUNT' => 2, 'SAVEPOINT' => 2, 'SQL_CACHE' => 2, - 'TEMPORARY' => 2, 'TEMPTABLE' => 2, 'TIMESTAMP' => 2, 'UNDEFINED' => 2, - 'UNINSTALL' => 2, 'VARIABLES' => 2, - 'COMPLETION' => 2, 'COMPRESSED' => 2, 'CONCURRENT' => 2, 'CONNECTION' => 2, - 'CONSISTENT' => 2, 'DEALLOCATE' => 2, 'GET_FORMAT' => 2, 'IDENTIFIED' => 2, - 'LINESTRING' => 2, 'MASTER_SSL' => 2, 'MULTIPOINT' => 2, 'NDBCLUSTER' => 2, - 'PARTITIONS' => 2, 'PLUGIN_DIR' => 2, 'PRIVILEGES' => 2, 'REORGANIZE' => 2, - 'REPEATABLE' => 2, 'ROW_FORMAT' => 2, 'SQL_THREAD' => 2, 'TABLESPACE' => 2, - 'TABLE_NAME' => 2, 'VALIDATION' => 2, - 'COLUMN_NAME' => 2, 'COMPRESSION' => 2, 'CURSOR_NAME' => 2, 'DIAGNOSTICS' => 2, - 'EXTENT_SIZE' => 2, 'MASTER_HOST' => 2, 'MASTER_PORT' => 2, 'MASTER_USER' => 2, - 'MICROSECOND' => 2, 'MYSQL_ERRNO' => 2, 'NONBLOCKING' => 2, 'PROCESSLIST' => 2, - 'REPLICATION' => 2, 'SCHEMA_NAME' => 2, 'SQL_TSI_DAY' => 2, 'TRANSACTION' => 2, - 'UNCOMMITTED' => 2, - 'CATALOG_NAME' => 2, 'CLASS_ORIGIN' => 2, 'DEFAULT_AUTH' => 2, - 'DES_KEY_FILE' => 2, 'INITIAL_SIZE' => 2, 'MASTER_DELAY' => 2, - 'MESSAGE_TEXT' => 2, 'MULTIPOLYGON' => 2, 'OLD_PASSWORD' => 2, - 'PARTITIONING' => 2, 'RELAY_THREAD' => 2, 'SERIALIZABLE' => 2, - 'SQL_NO_CACHE' => 2, 'SQL_TSI_HOUR' => 2, 'SQL_TSI_WEEK' => 2, - 'SQL_TSI_YEAR' => 2, 'SUBPARTITION' => 2, 'TIMESTAMPADD' => 2, - 'COLUMN_FORMAT' => 2, 'INSERT_METHOD' => 2, 'MASTER_SSL_CA' => 2, - 'RELAY_LOG_POS' => 2, 'SQL_TSI_MONTH' => 2, 'SUBPARTITIONS' => 2, - 'TIMESTAMPDIFF' => 2, 'WEIGHT_STRING' => 2, - 'AUTO_INCREMENT' => 2, 'AVG_ROW_LENGTH' => 2, 'KEY_BLOCK_SIZE' => 2, - 'MASTER_LOG_POS' => 2, 'MASTER_SSL_CRL' => 2, 'MASTER_SSL_KEY' => 2, - 'RELAY_LOG_FILE' => 2, 'SQL_TSI_MINUTE' => 2, 'SQL_TSI_SECOND' => 2, - 'TABLE_CHECKSUM' => 2, 'USER_RESOURCES' => 2, - 'AUTOEXTEND_SIZE' => 2, 'CONSTRAINT_NAME' => 2, 'DELAY_KEY_WRITE' => 2, - 'FILE_BLOCK_SIZE' => 2, 'MASTER_LOG_FILE' => 2, 'MASTER_PASSWORD' => 2, - 'MASTER_SSL_CERT' => 2, 'MULTILINESTRING' => 2, 'PARSE_GCOL_EXPR' => 2, - 'REPLICATE_DO_DB' => 2, 'SQL_AFTER_GTIDS' => 2, 'SQL_TSI_QUARTER' => 2, - 'SUBCLASS_ORIGIN' => 2, - 'MASTER_SERVER_ID' => 2, 'REDO_BUFFER_SIZE' => 2, 'SQL_BEFORE_GTIDS' => 2, - 'STATS_PERSISTENT' => 2, 'UNDO_BUFFER_SIZE' => 2, - 'CONSTRAINT_SCHEMA' => 2, 'GROUP_REPLICATION' => 2, 'IGNORE_SERVER_IDS' => 2, - 'MASTER_SSL_CAPATH' => 2, 'MASTER_SSL_CIPHER' => 2, 'RETURNED_SQLSTATE' => 2, - 'SQL_BUFFER_RESULT' => 2, 'STATS_AUTO_RECALC' => 2, - 'CONSTRAINT_CATALOG' => 2, 'GEOMETRYCOLLECTION' => 2, 'MASTER_RETRY_COUNT' => 2, - 'MASTER_SSL_CRLPATH' => 2, 'MAX_STATEMENT_TIME' => 2, 'REPLICATE_DO_TABLE' => 2, - 'SQL_AFTER_MTS_GAPS' => 2, 'STATS_SAMPLE_PAGES' => 2, - 'REPLICATE_IGNORE_DB' => 2, - 'MASTER_AUTO_POSITION' => 2, 'MASTER_CONNECT_RETRY' => 2, - 'MAX_QUERIES_PER_HOUR' => 2, 'MAX_UPDATES_PER_HOUR' => 2, - 'MAX_USER_CONNECTIONS' => 2, 'REPLICATE_REWRITE_DB' => 2, - 'REPLICATE_IGNORE_TABLE' => 2, - 'MASTER_HEARTBEAT_PERIOD' => 2, 'REPLICATE_WILD_DO_TABLE' => 2, - 'MAX_CONNECTIONS_PER_HOUR' => 2, - 'REPLICATE_WILD_IGNORE_TABLE' => 2, - - 'NOT NULL' => 4, - 'INDEX KEY' => 4, - 'UNIQUE KEY' => 4, - 'FOREIGN KEY' => 4, 'PRIMARY KEY' => 4, 'PRIMARY KEY' => 4, 'SPATIAL KEY' => 4, - 'FULLTEXT KEY' => 4, 'UNIQUE INDEX' => 4, - 'CHARACTER SET' => 4, 'IF NOT EXISTS' => 4, 'SPATIAL INDEX' => 4, - 'DATA DIRECTORY' => 4, 'FULLTEXT INDEX' => 4, - 'DEFAULT COLLATE' => 4, 'INDEX DIRECTORY' => 4, - 'DEFAULT CHARACTER SET' => 4, - ); - - // ------------------------------------------------------------------------- - // Keys and Data Types. - - /** - * Types of keys. - * - * @var array - */ - public static $KEY_TYPES = array( - 'FOREIGN KEY' => 1, 'FULLTEXT INDEX' => 1, 'FULLTEXT KEY' => 1, - 'INDEX KEY' => 1, 'INDEX' => 1, 'KEY' => 1, 'PRIMARY KEY' => 1, - 'SPATIAL INDEX' => 1, 'SPATIAL KEY' => 1, 'UNIQUE INDEX' => 1, - 'UNIQUE KEY' => 1, 'UNIQUE' => 1, - ); - - /** - * All data types. - * - * @var array - */ - public static $DATA_TYPES = array( - 'ARRAY' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'BINARY VARYING' => 1, - 'BLOB' => 1, 'BOOLEAN' => 1, 'CHAR' => 1, 'CHARACTER' => 1, 'DATE' => 1, - 'DATETIME' => 1, 'DECIMAL' => 1, 'DOUBLE' => 1, 'ENUM' => 1, - 'FLOAT' => 1, 'INT' => 1, 'INTEGER' => 1, 'INTERVAL' => 1, - 'LONGBLOB' => 1, 'LONGTEXT' => 1, 'MEDIUMBLOB' => 1, 'MEDIUMINT' => 1, - 'MEDIUMTEXT' => 1, 'MULTISET' => 1, 'NUMERIC' => 1, 'REAL' => 1, - 'SET' => 1, 'SMALLINT' => 1, 'TEXT' => 1, 'TIME' => 1, 'TIMESTAMP' => 1, - 'TINYBLOB' => 1, 'TINYINT' => 1, 'TINYTEXT' => 1, 'VARBINARY' => 1, - 'VARCHAR' => 1, 'XML' => 1, 'YEAR' => 1 - ); + public static $KEYWORDS = array(); // ------------------------------------------------------------------------- // Operators. @@ -635,3 +417,6 @@ abstract class Context self::$KEYWORDS = $context::$KEYWORDS; } } + +// Initializng the default context. +Context::load(); diff --git a/src/Contexts/ContextMySql50000.php b/src/Contexts/ContextMySql50000.php index e54373d..fa7ab1d 100644 --- a/src/Contexts/ContextMySql50000.php +++ b/src/Contexts/ContextMySql50000.php @@ -5,7 +5,7 @@ namespace SqlParser\Contexts; use SqlParser\Context; /** - * Context for MySQL 5.0. + * Context for MySQL 5. * * @category Contexts * @package SqlParser @@ -18,155 +18,161 @@ class ContextMySql50000 extends Context public static $KEYWORDS = array( - 'AS' => 1, 'BY' => 1, 'IF' => 1, 'IN' => 1, 'IS' => 1, - 'ON' => 1, 'OR' => 1, 'TO' => 1, - 'ADD' => 1, 'ALL' => 1, 'AND' => 1, 'ASC' => 1, 'DEC' => 1, - 'DIV' => 1, 'FOR' => 1, 'INT' => 1, 'KEY' => 1, 'MOD' => 1, - 'NOT' => 1, 'OUT' => 1, 'SET' => 1, 'SQL' => 1, 'SSL' => 1, - 'USE' => 1, 'XOR' => 1, - 'BLOB' => 1, 'BOTH' => 1, 'CALL' => 1, 'CASE' => 1, - 'CHAR' => 1, 'DESC' => 1, 'DROP' => 1, 'DUAL' => 1, - 'EACH' => 1, 'ELSE' => 1, 'EXIT' => 1, 'FROM' => 1, - 'INT1' => 1, 'INT2' => 1, 'INT3' => 1, 'INT4' => 1, - 'INT8' => 1, 'INTO' => 1, 'JOIN' => 1, 'KEYS' => 1, - 'KILL' => 1, 'LEFT' => 1, 'LIKE' => 1, 'LOAD' => 1, - 'LOCK' => 1, 'LONG' => 1, 'LOOP' => 1, 'NULL' => 1, - 'READ' => 1, 'REAL' => 1, 'SHOW' => 1, 'THEN' => 1, - 'TRUE' => 1, 'UNDO' => 1, 'WHEN' => 1, 'WITH' => 1, - 'ALTER' => 1, 'CHECK' => 1, 'CROSS' => 1, 'FALSE' => 1, - 'FETCH' => 1, 'FLOAT' => 1, 'FORCE' => 1, 'GRANT' => 1, - 'GROUP' => 1, 'INDEX' => 1, 'INNER' => 1, 'INOUT' => 1, - 'LEAVE' => 1, 'LIMIT' => 1, 'LINES' => 1, 'MATCH' => 1, - 'ORDER' => 1, 'OUTER' => 1, 'PURGE' => 1, 'READS' => 1, - 'RIGHT' => 1, 'RLIKE' => 1, 'TABLE' => 1, 'UNION' => 1, - 'USAGE' => 1, 'USING' => 1, 'WHERE' => 1, 'WHILE' => 1, - 'WRITE' => 1, - 'BEFORE' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'CHANGE' => 1, - 'COLUMN' => 1, 'CREATE' => 1, 'CURSOR' => 1, 'DELETE' => 1, - 'DOUBLE' => 1, 'ELSEIF' => 1, 'EXISTS' => 1, 'FLOAT4' => 1, - 'FLOAT8' => 1, 'HAVING' => 1, 'IGNORE' => 1, 'INFILE' => 1, - 'INSERT' => 1, 'OPTION' => 1, 'REGEXP' => 1, 'RENAME' => 1, - 'REPEAT' => 1, 'RETURN' => 1, 'REVOKE' => 1, 'SCHEMA' => 1, - 'SELECT' => 1, 'SONAME' => 1, 'UNIQUE' => 1, 'UNLOCK' => 1, - 'UPDATE' => 1, 'VALUES' => 1, - 'ANALYZE' => 1, 'BETWEEN' => 1, 'CASCADE' => 1, 'COLLATE' => 1, - 'CONVERT' => 1, 'DECIMAL' => 1, 'DECLARE' => 1, 'DEFAULT' => 1, - 'DELAYED' => 1, 'ESCAPED' => 1, 'EXPLAIN' => 1, 'FOREIGN' => 1, - 'INTEGER' => 1, 'ITERATE' => 1, 'LEADING' => 1, 'NATURAL' => 1, - 'NUMERIC' => 1, 'OUTFILE' => 1, 'PRIMARY' => 1, 'RELEASE' => 1, - 'REPLACE' => 1, 'REQUIRE' => 1, 'SCHEMAS' => 1, 'SPATIAL' => 1, - 'TINYINT' => 1, 'TRIGGER' => 1, 'VARCHAR' => 1, 'VARYING' => 1, - 'CONTINUE' => 1, 'DATABASE' => 1, 'DAY_HOUR' => 1, - 'DESCRIBE' => 1, 'DISTINCT' => 1, 'ENCLOSED' => 1, - 'FULLTEXT' => 1, 'INTERVAL' => 1, 'LONGBLOB' => 1, - 'LONGTEXT' => 1, 'MODIFIES' => 1, 'OPTIMIZE' => 1, - 'RESTRICT' => 1, 'SMALLINT' => 1, 'SPECIFIC' => 1, - 'SQLSTATE' => 1, 'STARTING' => 1, 'TINYBLOB' => 1, - 'TINYTEXT' => 1, 'TRAILING' => 1, 'UNSIGNED' => 1, - 'UTC_DATE' => 1, 'UTC_TIME' => 1, 'ZEROFILL' => 1, - 'CHARACTER' => 1, 'CONDITION' => 1, 'DATABASES' => 1, - 'LOCALTIME' => 1, 'MEDIUMINT' => 1, 'MIDDLEINT' => 1, - 'PRECISION' => 1, 'PROCEDURE' => 1, 'SENSITIVE' => 1, - 'SEPARATOR' => 1, 'VARBINARY' => 1, - 'ASENSITIVE' => 1, 'CONSTRAINT' => 1, 'DAY_MINUTE' => 1, - 'DAY_SECOND' => 1, 'MEDIUMBLOB' => 1, 'MEDIUMTEXT' => 1, - 'OPTIONALLY' => 1, 'REFERENCES' => 1, 'SQLWARNING' => 1, - 'TERMINATED' => 1, 'YEAR_MONTH' => 1, - 'DISTINCTROW' => 1, 'HOUR_MINUTE' => 1, 'HOUR_SECOND' => 1, - 'INSENSITIVE' => 1, - 'CURRENT_DATE' => 1, 'CURRENT_TIME' => 1, 'CURRENT_USER' => 1, - 'LOW_PRIORITY' => 1, 'SQLEXCEPTION' => 1, 'VARCHARACTER' => 1, - 'DETERMINISTIC' => 1, 'HIGH_PRIORITY' => 1, 'MINUTE_SECOND' => 1, - 'STRAIGHT_JOIN' => 1, 'UTC_TIMESTAMP' => 1, - 'LOCALTIMESTAMP' => 1, 'SQL_BIG_RESULT' => 1, - 'DAY_MICROSECOND' => 1, - 'HOUR_MICROSECOND' => 1, 'SQL_SMALL_RESULT' => 1, - 'CURRENT_TIMESTAMP' => 1, - 'MINUTE_MICROSECOND' => 1, 'NO_WRITE_TO_BINLOG' => 1, - 'SECOND_MICROSECOND' => 1, - 'SQL_CALC_FOUND_ROWS' => 1, + 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, + 'ANY' => 1, 'AVG' => 1, 'BDB' => 1, 'BIT' => 1, 'CPU' => 1, 'DAY' => 1, + 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, + 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'FAST' => 1, + 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, 'HOUR' => 1, 'LAST' => 1, + 'LOGS' => 1, 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, + 'PAGE' => 1, 'PREV' => 1, 'ROWS' => 1, 'SOME' => 1, 'STOP' => 1, 'TYPE' => 1, + 'USER' => 1, 'VIEW' => 1, 'WEEK' => 1, 'WORK' => 1, 'X509' => 1, + 'AFTER' => 1, 'ASCII' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, + 'CACHE' => 1, 'CHAIN' => 1, 'CLOSE' => 1, 'FIRST' => 1, 'FIXED' => 1, + 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, 'LEVEL' => 1, 'LOCAL' => 1, + 'LOCKS' => 1, 'MERGE' => 1, 'MONTH' => 1, 'MUTEX' => 1, 'NAMES' => 1, + 'NCHAR' => 1, 'PHASE' => 1, 'POINT' => 1, 'QUERY' => 1, 'QUICK' => 1, + 'RAID0' => 1, 'RESET' => 1, 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, + 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, + 'VALUE' => 1, + 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, + 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, + 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, + 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, + 'MEDIUM' => 1, 'MEMORY' => 1, 'MINUTE' => 1, 'MODIFY' => 1, 'OFFSET' => 1, + 'RELOAD' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, 'SECOND' => 1, + 'SERIAL' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, 'SOUNDS' => 1, 'SOURCE' => 1, + 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, + 'AGAINST' => 1, 'CHANGED' => 1, 'CHARSET' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, + 'COMPACT' => 1, 'CONTEXT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, + 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, 'HANDLER' => 1, 'INDEXES' => 1, + 'INVOKER' => 1, 'MIGRATE' => 1, 'PARTIAL' => 1, 'POLYGON' => 1, 'PREPARE' => 1, + 'PROFILE' => 1, 'QUARTER' => 1, 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, + 'ROUTINE' => 1, 'SESSION' => 1, 'STORAGE' => 1, 'STRIPED' => 1, 'SUBJECT' => 1, + 'SUSPEND' => 1, 'UNICODE' => 1, 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, + 'CASCADED' => 1, 'CHECKSUM' => 1, 'CONTAINS' => 1, 'DUMPFILE' => 1, + 'EXTENDED' => 1, 'FUNCTION' => 1, 'GEOMETRY' => 1, 'INNOBASE' => 1, + 'LANGUAGE' => 1, 'MAX_ROWS' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, + 'NVARCHAR' => 1, 'ONE_SHOT' => 1, 'PASSWORD' => 1, 'PROFILES' => 1, + 'ROLLBACK' => 1, 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, + 'SWITCHES' => 1, 'TRIGGERS' => 1, 'TRUNCATE' => 1, 'WARNINGS' => 1, + 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COLLATION' => 1, 'COMMITTED' => 1, + 'DIRECTORY' => 1, 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, + 'ISOLATION' => 1, 'PACK_KEYS' => 1, 'RAID_TYPE' => 1, 'REDUNDANT' => 1, + 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, + 'UNDEFINED' => 1, 'VARIABLES' => 1, + 'BERKELEYDB' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, + 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'GET_FORMAT' => 1, 'IDENTIFIED' => 1, + 'LINESTRING' => 1, 'MASTER_SSL' => 1, 'MULTIPOINT' => 1, 'NDBCLUSTER' => 1, + 'PRIVILEGES' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, + 'TABLESPACE' => 1, + 'FRAC_SECOND' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, + 'MICROSECOND' => 1, 'PROCESSLIST' => 1, 'RAID_CHUNKS' => 1, 'REPLICATION' => 1, + 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, + 'DES_KEY_FILE' => 1, 'MULTIPOLYGON' => 1, 'OLD_PASSWORD' => 1, + 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, + 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, + 'TIMESTAMPADD' => 1, + 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'RELAY_LOG_POS' => 1, + 'SQL_TSI_MONTH' => 1, 'TIMESTAMPDIFF' => 1, + 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'MASTER_LOG_POS' => 1, + 'MASTER_SSL_KEY' => 1, 'RAID_CHUNKSIZE' => 1, 'RELAY_LOG_FILE' => 1, + 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, 'USER_RESOURCES' => 1, + 'DELAY_KEY_WRITE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, + 'MASTER_SSL_CERT' => 1, 'MULTILINESTRING' => 1, 'SQL_TSI_QUARTER' => 1, + 'MASTER_SERVER_ID' => 1, + 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, + 'GEOMETRYCOLLECTION' => 1, + 'SQL_TSI_FRAC_SECOND' => 1, + 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, + 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, + 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'DO' => 2, 'IO' => 2, 'NO' => 2, 'XA' => 2, - 'ANY' => 2, 'AVG' => 2, 'BDB' => 2, 'BIT' => 2, 'CPU' => 2, 'DAY' => 2, - 'END' => 2, 'IPC' => 2, 'NDB' => 2, 'NEW' => 2, 'ONE' => 2, 'ROW' => 2, - 'BOOL' => 2, 'BYTE' => 2, 'CODE' => 2, 'CUBE' => 2, 'DATA' => 2, 'DATE' => 2, - 'ENUM' => 2, 'FAST' => 2, 'FILE' => 2, 'FULL' => 2, 'HASH' => 2, 'HELP' => 2, - 'HOUR' => 2, 'LAST' => 2, 'LOGS' => 2, 'MODE' => 2, 'NAME' => 2, 'NEXT' => 2, - 'NONE' => 2, 'OPEN' => 2, 'PAGE' => 2, 'PREV' => 2, 'ROWS' => 2, 'SOME' => 2, - 'STOP' => 2, 'TEXT' => 2, 'TIME' => 2, 'TYPE' => 2, 'USER' => 2, 'VIEW' => 2, - 'WEEK' => 2, 'WORK' => 2, 'X509' => 2, 'YEAR' => 2, - 'AFTER' => 2, 'ASCII' => 2, 'BEGIN' => 2, 'BLOCK' => 2, 'BTREE' => 2, - 'CACHE' => 2, 'CHAIN' => 2, 'CLOSE' => 2, 'FIRST' => 2, 'FIXED' => 2, - 'FLUSH' => 2, 'FOUND' => 2, 'HOSTS' => 2, 'LEVEL' => 2, 'LOCAL' => 2, - 'LOCKS' => 2, 'MERGE' => 2, 'MONTH' => 2, 'MUTEX' => 2, 'NAMES' => 2, - 'NCHAR' => 2, 'PHASE' => 2, 'POINT' => 2, 'QUERY' => 2, 'QUICK' => 2, - 'RAID0' => 2, 'RESET' => 2, 'RTREE' => 2, 'SHARE' => 2, 'SLAVE' => 2, - 'START' => 2, 'SUPER' => 2, 'SWAPS' => 2, 'TYPES' => 2, 'UNTIL' => 2, - 'VALUE' => 2, - 'ACTION' => 2, 'BACKUP' => 2, 'BINLOG' => 2, 'CIPHER' => 2, 'CLIENT' => 2, - 'COMMIT' => 2, 'ENABLE' => 2, 'ENGINE' => 2, 'ERRORS' => 2, 'ESCAPE' => 2, - 'EVENTS' => 2, 'FAULTS' => 2, 'FIELDS' => 2, 'GLOBAL' => 2, 'GRANTS' => 2, - 'IMPORT' => 2, 'INNODB' => 2, 'ISSUER' => 2, 'LEAVES' => 2, 'MASTER' => 2, - 'MEDIUM' => 2, 'MEMORY' => 2, 'MINUTE' => 2, 'MODIFY' => 2, 'OFFSET' => 2, - 'RELOAD' => 2, 'REPAIR' => 2, 'RESUME' => 2, 'ROLLUP' => 2, 'SECOND' => 2, - 'SERIAL' => 2, 'SIGNED' => 2, 'SIMPLE' => 2, 'SOUNDS' => 2, 'SOURCE' => 2, - 'STATUS' => 2, 'STRING' => 2, 'TABLES' => 2, - 'AGAINST' => 2, 'BOOLEAN' => 2, 'CHANGED' => 2, 'CHARSET' => 2, 'COLUMNS' => 2, - 'COMMENT' => 2, 'COMPACT' => 2, 'CONTEXT' => 2, 'DEFINER' => 2, 'DISABLE' => 2, - 'DISCARD' => 2, 'DYNAMIC' => 2, 'ENGINES' => 2, 'EXECUTE' => 2, 'HANDLER' => 2, - 'INDEXES' => 2, 'INVOKER' => 2, 'MIGRATE' => 2, 'PARTIAL' => 2, 'POLYGON' => 2, - 'PREPARE' => 2, 'PROFILE' => 2, 'QUARTER' => 2, 'RECOVER' => 2, 'RESTORE' => 2, - 'RETURNS' => 2, 'ROUTINE' => 2, 'SESSION' => 2, 'STORAGE' => 2, 'STRIPED' => 2, - 'SUBJECT' => 2, 'SUSPEND' => 2, 'UNICODE' => 2, 'UNKNOWN' => 2, 'UPGRADE' => 2, - 'USE_FRM' => 2, - 'CASCADED' => 2, 'CHECKSUM' => 2, 'CONTAINS' => 2, 'DATETIME' => 2, - 'DUMPFILE' => 2, 'EXTENDED' => 2, 'FUNCTION' => 2, 'GEOMETRY' => 2, - 'INNOBASE' => 2, 'LANGUAGE' => 2, 'MAX_ROWS' => 2, 'MIN_ROWS' => 2, - 'NATIONAL' => 2, 'NVARCHAR' => 2, 'ONE_SHOT' => 2, 'PASSWORD' => 2, - 'PROFILES' => 2, 'ROLLBACK' => 2, 'SECURITY' => 2, 'SHUTDOWN' => 2, - 'SNAPSHOT' => 2, 'SWITCHES' => 2, 'TRIGGERS' => 2, 'TRUNCATE' => 2, - 'WARNINGS' => 2, - 'AGGREGATE' => 2, 'ALGORITHM' => 2, 'COLLATION' => 2, 'COMMITTED' => 2, - 'DIRECTORY' => 2, 'DUPLICATE' => 2, 'EXPANSION' => 2, 'IO_THREAD' => 2, - 'ISOLATION' => 2, 'PACK_KEYS' => 2, 'RAID_TYPE' => 2, 'REDUNDANT' => 2, - 'SAVEPOINT' => 2, 'SQL_CACHE' => 2, 'TEMPORARY' => 2, 'TEMPTABLE' => 2, - 'TIMESTAMP' => 2, 'UNDEFINED' => 2, 'VARIABLES' => 2, - 'BERKELEYDB' => 2, 'COMPRESSED' => 2, 'CONCURRENT' => 2, 'CONNECTION' => 2, - 'CONSISTENT' => 2, 'DEALLOCATE' => 2, 'GET_FORMAT' => 2, 'IDENTIFIED' => 2, - 'LINESTRING' => 2, 'MASTER_SSL' => 2, 'MULTIPOINT' => 2, 'NDBCLUSTER' => 2, - 'PRIVILEGES' => 2, 'REPEATABLE' => 2, 'ROW_FORMAT' => 2, 'SQL_THREAD' => 2, - 'TABLESPACE' => 2, - 'FRAC_SECOND' => 2, 'MASTER_HOST' => 2, 'MASTER_PORT' => 2, 'MASTER_USER' => 2, - 'MICROSECOND' => 2, 'PROCESSLIST' => 2, 'RAID_CHUNKS' => 2, 'REPLICATION' => 2, - 'SQL_TSI_DAY' => 2, 'TRANSACTION' => 2, 'UNCOMMITTED' => 2, - 'DES_KEY_FILE' => 2, 'MULTIPOLYGON' => 2, 'OLD_PASSWORD' => 2, - 'RELAY_THREAD' => 2, 'SERIALIZABLE' => 2, 'SQL_NO_CACHE' => 2, - 'SQL_TSI_HOUR' => 2, 'SQL_TSI_WEEK' => 2, 'SQL_TSI_YEAR' => 2, - 'TIMESTAMPADD' => 2, - 'INSERT_METHOD' => 2, 'MASTER_SSL_CA' => 2, 'RELAY_LOG_POS' => 2, - 'SQL_TSI_MONTH' => 2, 'TIMESTAMPDIFF' => 2, - 'AUTO_INCREMENT' => 2, 'AVG_ROW_LENGTH' => 2, 'MASTER_LOG_POS' => 2, - 'MASTER_SSL_KEY' => 2, 'RAID_CHUNKSIZE' => 2, 'RELAY_LOG_FILE' => 2, - 'SQL_TSI_MINUTE' => 2, 'SQL_TSI_SECOND' => 2, 'USER_RESOURCES' => 2, - 'DELAY_KEY_WRITE' => 2, 'MASTER_LOG_FILE' => 2, 'MASTER_PASSWORD' => 2, - 'MASTER_SSL_CERT' => 2, 'MULTILINESTRING' => 2, 'SQL_TSI_QUARTER' => 2, - 'MASTER_SERVER_ID' => 2, - 'MASTER_SSL_CAPATH' => 2, 'MASTER_SSL_CIPHER' => 2, 'SQL_BUFFER_RESULT' => 2, - 'GEOMETRYCOLLECTION' => 2, - 'SQL_TSI_FRAC_SECOND' => 2, - 'MASTER_CONNECT_RETRY' => 2, 'MAX_QUERIES_PER_HOUR' => 2, - 'MAX_UPDATES_PER_HOUR' => 2, 'MAX_USER_CONNECTIONS' => 2, - 'MAX_CONNECTIONS_PER_HOUR' => 2, + 'AS' => 3, 'BY' => 3, 'IF' => 3, 'IN' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, + 'TO' => 3, + 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, + 'FOR' => 3, 'MOD' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, + 'USE' => 3, 'XOR' => 3, + 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, + 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, + 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, + 'KILL' => 3, 'LEFT' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, + 'LOOP' => 3, 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, + 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, + 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, + 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, + 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'MATCH' => 3, 'ORDER' => 3, + 'OUTER' => 3, 'PURGE' => 3, 'READS' => 3, 'RIGHT' => 3, 'RLIKE' => 3, + 'TABLE' => 3, 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, 'WHERE' => 3, + 'WHILE' => 3, 'WRITE' => 3, + 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, + 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, + 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'INSERT' => 3, 'OPTION' => 3, + 'REGEXP' => 3, 'RENAME' => 3, 'REPEAT' => 3, 'RETURN' => 3, 'REVOKE' => 3, + 'SCHEMA' => 3, 'SELECT' => 3, 'SONAME' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, + 'VALUES' => 3, + 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'CONVERT' => 3, + 'DECLARE' => 3, 'DEFAULT' => 3, 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, + 'FOREIGN' => 3, 'ITERATE' => 3, 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, + 'PRIMARY' => 3, 'RELEASE' => 3, 'REPLACE' => 3, 'REQUIRE' => 3, 'SCHEMAS' => 3, + 'SPATIAL' => 3, 'TRIGGER' => 3, 'VARYING' => 3, + 'CONTINUE' => 3, 'DATABASE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, + 'DISTINCT' => 3, 'ENCLOSED' => 3, 'FULLTEXT' => 3, 'MODIFIES' => 3, + 'OPTIMIZE' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, + 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'UTC_DATE' => 3, + 'UTC_TIME' => 3, 'ZEROFILL' => 3, + 'CONDITION' => 3, 'DATABASES' => 3, 'LOCALTIME' => 3, 'MIDDLEINT' => 3, + 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, + 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, 'DAY_SECOND' => 3, + 'OPTIONALLY' => 3, 'REFERENCES' => 3, 'SQLWARNING' => 3, 'TERMINATED' => 3, + 'YEAR_MONTH' => 3, + 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, + 'CURRENT_DATE' => 3, 'CURRENT_TIME' => 3, 'CURRENT_USER' => 3, + 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, + 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, + 'STRAIGHT_JOIN' => 3, 'UTC_TIMESTAMP' => 3, + 'LOCALTIMESTAMP' => 3, 'SQL_BIG_RESULT' => 3, + 'DAY_MICROSECOND' => 3, + 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, + 'CURRENT_TIMESTAMP' => 3, + 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, + 'SQL_CALC_FOUND_ROWS' => 3, - 'NOT NULL' => 4, - 'INDEX KEY' => 4, - 'UNIQUE KEY' => 4, - 'FOREIGN KEY' => 4, 'PRIMARY KEY' => 4, 'PRIMARY KEY' => 4, 'SPATIAL KEY' => 4, - 'FULLTEXT KEY' => 4, 'UNIQUE INDEX' => 4, - 'CHARACTER SET' => 4, 'IF NOT EXISTS' => 4, 'SPATIAL INDEX' => 4, - 'DATA DIRECTORY' => 4, 'FULLTEXT INDEX' => 4, - 'DEFAULT COLLATE' => 4, 'INDEX DIRECTORY' => 4, - 'DEFAULT CHARACTER SET' => 4, + 'NOT NULL' => 5, + 'ON UPDATE' => 5, + 'CHARACTER SET' => 5, 'IF NOT EXISTS' => 5, + 'DATA DIRECTORY' => 5, + 'DEFAULT COLLATE' => 5, 'INDEX DIRECTORY' => 5, + 'DEFAULT CHARACTER SET' => 5, + + 'XML' => 9, + 'DATE' => 9, 'ENUM' => 9, 'TEXT' => 9, 'TIME' => 9, 'YEAR' => 9, + 'ARRAY' => 9, + 'BOOLEAN' => 9, + 'DATETIME' => 9, 'MULTISET' => 9, + 'TIMESTAMP' => 9, + + 'INT' => 11, 'SET' => 11, + 'BLOB' => 11, 'CHAR' => 11, 'REAL' => 11, + 'FLOAT' => 11, + 'BIGINT' => 11, 'BINARY' => 11, 'DOUBLE' => 11, + 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, + 'INTERVAL' => 11, 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, + 'TINYBLOB' => 11, 'TINYTEXT' => 11, + 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, + 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, + + 'BINARY VARYING' => 13, + + 'KEY' => 19, + 'INDEX' => 19, + 'UNIQUE' => 19, + + 'INDEX KEY' => 21, + 'UNIQUE KEY' => 21, + 'FOREIGN KEY' => 21, 'PRIMARY KEY' => 21, 'SPATIAL KEY' => 21, + 'FULLTEXT KEY' => 21, 'UNIQUE INDEX' => 21, + 'SPATIAL INDEX' => 21, + 'FULLTEXT INDEX' => 21, ); } diff --git a/src/Contexts/ContextMySql50100.php b/src/Contexts/ContextMySql50100.php index f853c9a..4822141 100644 --- a/src/Contexts/ContextMySql50100.php +++ b/src/Contexts/ContextMySql50100.php @@ -18,169 +18,175 @@ class ContextMySql50100 extends Context public static $KEYWORDS = array( - 'AS' => 1, 'BY' => 1, 'IF' => 1, 'IN' => 1, 'IS' => 1, - 'ON' => 1, 'OR' => 1, 'TO' => 1, - 'ADD' => 1, 'ALL' => 1, 'AND' => 1, 'ASC' => 1, 'DEC' => 1, - 'DIV' => 1, 'FOR' => 1, 'INT' => 1, 'KEY' => 1, 'MOD' => 1, - 'NOT' => 1, 'OUT' => 1, 'SET' => 1, 'SQL' => 1, 'SSL' => 1, - 'USE' => 1, 'XOR' => 1, - 'BLOB' => 1, 'BOTH' => 1, 'CALL' => 1, 'CASE' => 1, - 'CHAR' => 1, 'DESC' => 1, 'DROP' => 1, 'DUAL' => 1, - 'EACH' => 1, 'ELSE' => 1, 'EXIT' => 1, 'FROM' => 1, - 'INT1' => 1, 'INT2' => 1, 'INT3' => 1, 'INT4' => 1, - 'INT8' => 1, 'INTO' => 1, 'JOIN' => 1, 'KEYS' => 1, - 'KILL' => 1, 'LEFT' => 1, 'LIKE' => 1, 'LOAD' => 1, - 'LOCK' => 1, 'LONG' => 1, 'LOOP' => 1, 'NULL' => 1, - 'READ' => 1, 'REAL' => 1, 'SHOW' => 1, 'THEN' => 1, - 'TRUE' => 1, 'UNDO' => 1, 'WHEN' => 1, 'WITH' => 1, - 'ALTER' => 1, 'CHECK' => 1, 'CROSS' => 1, 'FALSE' => 1, - 'FETCH' => 1, 'FLOAT' => 1, 'FORCE' => 1, 'GRANT' => 1, - 'GROUP' => 1, 'INDEX' => 1, 'INNER' => 1, 'INOUT' => 1, - 'LEAVE' => 1, 'LIMIT' => 1, 'LINES' => 1, 'MATCH' => 1, - 'ORDER' => 1, 'OUTER' => 1, 'PURGE' => 1, 'RANGE' => 1, - 'READS' => 1, 'RIGHT' => 1, 'RLIKE' => 1, 'TABLE' => 1, - 'UNION' => 1, 'USAGE' => 1, 'USING' => 1, 'WHERE' => 1, - 'WHILE' => 1, 'WRITE' => 1, - 'BEFORE' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'CHANGE' => 1, - 'COLUMN' => 1, 'CREATE' => 1, 'CURSOR' => 1, 'DELETE' => 1, - 'DOUBLE' => 1, 'ELSEIF' => 1, 'EXISTS' => 1, 'FLOAT4' => 1, - 'FLOAT8' => 1, 'HAVING' => 1, 'IGNORE' => 1, 'INFILE' => 1, - 'INSERT' => 1, 'LINEAR' => 1, 'OPTION' => 1, 'REGEXP' => 1, - 'RENAME' => 1, 'REPEAT' => 1, 'RETURN' => 1, 'REVOKE' => 1, - 'SCHEMA' => 1, 'SELECT' => 1, 'UNIQUE' => 1, 'UNLOCK' => 1, - 'UPDATE' => 1, 'VALUES' => 1, - 'ANALYZE' => 1, 'BETWEEN' => 1, 'CASCADE' => 1, 'COLLATE' => 1, - 'CONVERT' => 1, 'DECIMAL' => 1, 'DECLARE' => 1, 'DEFAULT' => 1, - 'DELAYED' => 1, 'ESCAPED' => 1, 'EXPLAIN' => 1, 'FOREIGN' => 1, - 'INTEGER' => 1, 'ITERATE' => 1, 'LEADING' => 1, 'NATURAL' => 1, - 'NUMERIC' => 1, 'OUTFILE' => 1, 'PRIMARY' => 1, 'RELEASE' => 1, - 'REPLACE' => 1, 'REQUIRE' => 1, 'SCHEMAS' => 1, 'SPATIAL' => 1, - 'TINYINT' => 1, 'TRIGGER' => 1, 'VARCHAR' => 1, 'VARYING' => 1, - 'CONTINUE' => 1, 'DATABASE' => 1, 'DAY_HOUR' => 1, - 'DESCRIBE' => 1, 'DISTINCT' => 1, 'ENCLOSED' => 1, - 'FULLTEXT' => 1, 'INTERVAL' => 1, 'LONGBLOB' => 1, - 'LONGTEXT' => 1, 'MODIFIES' => 1, 'OPTIMIZE' => 1, - 'RESTRICT' => 1, 'SMALLINT' => 1, 'SPECIFIC' => 1, - 'SQLSTATE' => 1, 'STARTING' => 1, 'TINYBLOB' => 1, - 'TINYTEXT' => 1, 'TRAILING' => 1, 'UNSIGNED' => 1, - 'UTC_DATE' => 1, 'UTC_TIME' => 1, 'ZEROFILL' => 1, - 'CHARACTER' => 1, 'CONDITION' => 1, 'DATABASES' => 1, - 'LOCALTIME' => 1, 'MEDIUMINT' => 1, 'MIDDLEINT' => 1, - 'PRECISION' => 1, 'PROCEDURE' => 1, 'SENSITIVE' => 1, - 'SEPARATOR' => 1, 'VARBINARY' => 1, - 'ACCESSIBLE' => 1, 'ASENSITIVE' => 1, 'CONSTRAINT' => 1, - 'DAY_MINUTE' => 1, 'DAY_SECOND' => 1, 'MEDIUMBLOB' => 1, - 'MEDIUMTEXT' => 1, 'OPTIONALLY' => 1, 'READ_WRITE' => 1, - 'REFERENCES' => 1, 'SQLWARNING' => 1, 'TERMINATED' => 1, - 'YEAR_MONTH' => 1, - 'DISTINCTROW' => 1, 'HOUR_MINUTE' => 1, 'HOUR_SECOND' => 1, - 'INSENSITIVE' => 1, - 'CURRENT_DATE' => 1, 'CURRENT_TIME' => 1, 'CURRENT_USER' => 1, - 'LOW_PRIORITY' => 1, 'SQLEXCEPTION' => 1, 'VARCHARACTER' => 1, - 'DETERMINISTIC' => 1, 'HIGH_PRIORITY' => 1, 'MINUTE_SECOND' => 1, - 'STRAIGHT_JOIN' => 1, 'UTC_TIMESTAMP' => 1, - 'LOCALTIMESTAMP' => 1, 'SQL_BIG_RESULT' => 1, - 'DAY_MICROSECOND' => 1, - 'HOUR_MICROSECOND' => 1, 'SQL_SMALL_RESULT' => 1, - 'CURRENT_TIMESTAMP' => 1, - 'MINUTE_MICROSECOND' => 1, 'NO_WRITE_TO_BINLOG' => 1, - 'SECOND_MICROSECOND' => 1, - 'SQL_CALC_FOUND_ROWS' => 1, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 1, + 'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, + 'ANY' => 1, 'AVG' => 1, 'BDB' => 1, 'BIT' => 1, 'CPU' => 1, 'DAY' => 1, + 'END' => 1, 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, + 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, + 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'GOTO' => 1, 'HASH' => 1, + 'HELP' => 1, 'HOST' => 1, 'HOUR' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, + 'LOGS' => 1, 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, + 'PAGE' => 1, 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SOME' => 1, 'STOP' => 1, + 'THAN' => 1, 'TYPE' => 1, 'USER' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WEEK' => 1, + 'WORK' => 1, 'X509' => 1, + 'AFTER' => 1, 'ASCII' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, + 'CACHE' => 1, 'CHAIN' => 1, 'CLOSE' => 1, 'EVENT' => 1, 'EVERY' => 1, + 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, 'HOSTS' => 1, + 'LABEL' => 1, 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, + 'MONTH' => 1, 'MUTEX' => 1, 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, + 'PHASE' => 1, 'POINT' => 1, 'QUERY' => 1, 'QUICK' => 1, 'RAID0' => 1, + 'RESET' => 1, 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, 'START' => 1, + 'SUPER' => 1, 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, 'VALUE' => 1, + 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, + 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, + 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, + 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, + 'MEDIUM' => 1, 'MEMORY' => 1, 'MINUTE' => 1, 'MODIFY' => 1, 'OFFSET' => 1, + 'PARSER' => 1, 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, + 'RESUME' => 1, 'ROLLUP' => 1, 'SECOND' => 1, 'SERIAL' => 1, 'SERVER' => 1, + 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, 'SOUNDS' => 1, + 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, + 'AGAINST' => 1, 'AUTHORS' => 1, 'CHANGED' => 1, 'CHARSET' => 1, 'COLUMNS' => 1, + 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, + 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, 'HANDLER' => 1, + 'INDEXES' => 1, 'INSTALL' => 1, 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, + 'NO_WAIT' => 1, 'OPTIONS' => 1, 'PARTIAL' => 1, 'PLUGINS' => 1, 'POLYGON' => 1, + 'PREPARE' => 1, 'PROFILE' => 1, 'QUARTER' => 1, 'REBUILD' => 1, 'RECOVER' => 1, + 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, 'STORAGE' => 1, + 'STRIPED' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, 'UNKNOWN' => 1, + 'UPGRADE' => 1, 'USE_FRM' => 1, 'WRAPPER' => 1, + 'CASCADED' => 1, 'CHECKSUM' => 1, 'COALESCE' => 1, 'CONTAINS' => 1, + 'DATAFILE' => 1, 'DUMPFILE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, + 'GEOMETRY' => 1, 'INNOBASE' => 1, 'LANGUAGE' => 1, 'MAXVALUE' => 1, + 'MAX_ROWS' => 1, 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, + 'NVARCHAR' => 1, 'ONE_SHOT' => 1, 'PASSWORD' => 1, 'PRESERVE' => 1, + 'PROFILES' => 1, 'REDOFILE' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, + 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, + 'TRIGGERS' => 1, 'TRUNCATE' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, + 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COLLATION' => 1, 'COMMITTED' => 1, + 'DIRECTORY' => 1, 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, + 'ISOLATION' => 1, 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'PARTITION' => 1, + 'RAID_TYPE' => 1, 'READ_ONLY' => 1, 'REDUNDANT' => 1, 'SAVEPOINT' => 1, + 'SCHEDULER' => 1, 'SQL_CACHE' => 1, 'TEMPORARY' => 1, 'TEMPTABLE' => 1, + 'UNDEFINED' => 1, 'UNINSTALL' => 1, 'VARIABLES' => 1, + 'BERKELEYDB' => 1, 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, + 'CONNECTION' => 1, 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'GET_FORMAT' => 1, + 'IDENTIFIED' => 1, 'LINESTRING' => 1, 'MASTER_SSL' => 1, 'MULTIPOINT' => 1, + 'NDBCLUSTER' => 1, 'PARTITIONS' => 1, 'PRIVILEGES' => 1, 'REORGANISE' => 1, + 'REORGANIZE' => 1, 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, + 'TABLESPACE' => 1, + 'EXTENT_SIZE' => 1, 'FRAC_SECOND' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, + 'MASTER_USER' => 1, 'MICROSECOND' => 1, 'PROCESSLIST' => 1, 'RAID_CHUNKS' => 1, + 'REPLICATION' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, + 'CONTRIBUTORS' => 1, 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, + 'MULTIPOLYGON' => 1, 'OLD_PASSWORD' => 1, 'PARTITIONING' => 1, + 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, + 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, + 'SUBPARTITION' => 1, 'TIMESTAMPADD' => 1, + 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'PAGE_CHECKSUM' => 1, + 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, + 'TIMESTAMPDIFF' => 1, 'TRANSACTIONAL' => 1, + 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, + 'MASTER_LOG_POS' => 1, 'MASTER_SSL_KEY' => 1, 'RAID_CHUNKSIZE' => 1, + 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, + 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, + 'AUTOEXTEND_SIZE' => 1, 'DELAY_KEY_WRITE' => 1, 'MASTER_LOG_FILE' => 1, + 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, 'MULTILINESTRING' => 1, + 'SQL_TSI_QUARTER' => 1, + 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'UNDO_BUFFER_SIZE' => 1, + 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, + 'GEOMETRYCOLLECTION' => 1, + 'SQL_TSI_FRAC_SECOND' => 1, + 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, + 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, + 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'AT' => 2, 'DO' => 2, 'IO' => 2, 'NO' => 2, 'XA' => 2, - 'ANY' => 2, 'AVG' => 2, 'BDB' => 2, 'BIT' => 2, 'CPU' => 2, 'DAY' => 2, - 'END' => 2, 'IPC' => 2, 'NDB' => 2, 'NEW' => 2, 'ONE' => 2, 'ROW' => 2, - 'BOOL' => 2, 'BYTE' => 2, 'CODE' => 2, 'CUBE' => 2, 'DATA' => 2, 'DATE' => 2, - 'DISK' => 2, 'ENDS' => 2, 'ENUM' => 2, 'FAST' => 2, 'FILE' => 2, 'FULL' => 2, - 'GOTO' => 2, 'HASH' => 2, 'HELP' => 2, 'HOST' => 2, 'HOUR' => 2, 'LAST' => 2, - 'LESS' => 2, 'LIST' => 2, 'LOGS' => 2, 'MODE' => 2, 'NAME' => 2, 'NEXT' => 2, - 'NONE' => 2, 'OPEN' => 2, 'PAGE' => 2, 'PORT' => 2, 'PREV' => 2, 'ROWS' => 2, - 'SOME' => 2, 'STOP' => 2, 'TEXT' => 2, 'THAN' => 2, 'TIME' => 2, 'TYPE' => 2, - 'USER' => 2, 'VIEW' => 2, 'WAIT' => 2, 'WEEK' => 2, 'WORK' => 2, 'X509' => 2, - 'YEAR' => 2, - 'AFTER' => 2, 'ASCII' => 2, 'BEGIN' => 2, 'BLOCK' => 2, 'BTREE' => 2, - 'CACHE' => 2, 'CHAIN' => 2, 'CLOSE' => 2, 'EVENT' => 2, 'EVERY' => 2, - 'FIRST' => 2, 'FIXED' => 2, 'FLUSH' => 2, 'FOUND' => 2, 'HOSTS' => 2, - 'LABEL' => 2, 'LEVEL' => 2, 'LOCAL' => 2, 'LOCKS' => 2, 'MERGE' => 2, - 'MONTH' => 2, 'MUTEX' => 2, 'NAMES' => 2, 'NCHAR' => 2, 'OWNER' => 2, - 'PHASE' => 2, 'POINT' => 2, 'QUERY' => 2, 'QUICK' => 2, 'RAID0' => 2, - 'RESET' => 2, 'RTREE' => 2, 'SHARE' => 2, 'SLAVE' => 2, 'START' => 2, - 'SUPER' => 2, 'SWAPS' => 2, 'TYPES' => 2, 'UNTIL' => 2, 'VALUE' => 2, - 'ACTION' => 2, 'BACKUP' => 2, 'BINLOG' => 2, 'CIPHER' => 2, 'CLIENT' => 2, - 'COMMIT' => 2, 'ENABLE' => 2, 'ENGINE' => 2, 'ERRORS' => 2, 'ESCAPE' => 2, - 'EVENTS' => 2, 'FAULTS' => 2, 'FIELDS' => 2, 'GLOBAL' => 2, 'GRANTS' => 2, - 'IMPORT' => 2, 'INNODB' => 2, 'ISSUER' => 2, 'LEAVES' => 2, 'MASTER' => 2, - 'MEDIUM' => 2, 'MEMORY' => 2, 'MINUTE' => 2, 'MODIFY' => 2, 'OFFSET' => 2, - 'PARSER' => 2, 'PLUGIN' => 2, 'RELOAD' => 2, 'REMOVE' => 2, 'REPAIR' => 2, - 'RESUME' => 2, 'ROLLUP' => 2, 'SECOND' => 2, 'SERIAL' => 2, 'SERVER' => 2, - 'SIGNED' => 2, 'SIMPLE' => 2, 'SOCKET' => 2, 'SONAME' => 2, 'SOUNDS' => 2, - 'SOURCE' => 2, 'STARTS' => 2, 'STATUS' => 2, 'STRING' => 2, 'TABLES' => 2, - 'AGAINST' => 2, 'AUTHORS' => 2, 'BOOLEAN' => 2, 'CHANGED' => 2, 'CHARSET' => 2, - 'COLUMNS' => 2, 'COMMENT' => 2, 'COMPACT' => 2, 'CONTEXT' => 2, 'DEFINER' => 2, - 'DISABLE' => 2, 'DISCARD' => 2, 'DYNAMIC' => 2, 'ENGINES' => 2, 'EXECUTE' => 2, - 'HANDLER' => 2, 'INDEXES' => 2, 'INSTALL' => 2, 'INVOKER' => 2, 'LOGFILE' => 2, - 'MIGRATE' => 2, 'NO_WAIT' => 2, 'OPTIONS' => 2, 'PARTIAL' => 2, 'PLUGINS' => 2, - 'POLYGON' => 2, 'PREPARE' => 2, 'PROFILE' => 2, 'QUARTER' => 2, 'REBUILD' => 2, - 'RECOVER' => 2, 'RESTORE' => 2, 'RETURNS' => 2, 'ROUTINE' => 2, 'SESSION' => 2, - 'STORAGE' => 2, 'STRIPED' => 2, 'SUBJECT' => 2, 'SUSPEND' => 2, 'UNICODE' => 2, - 'UNKNOWN' => 2, 'UPGRADE' => 2, 'USE_FRM' => 2, 'WRAPPER' => 2, - 'CASCADED' => 2, 'CHECKSUM' => 2, 'COALESCE' => 2, 'CONTAINS' => 2, - 'DATAFILE' => 2, 'DATETIME' => 2, 'DUMPFILE' => 2, 'EXTENDED' => 2, - 'FUNCTION' => 2, 'GEOMETRY' => 2, 'INNOBASE' => 2, 'LANGUAGE' => 2, - 'MAXVALUE' => 2, 'MAX_ROWS' => 2, 'MAX_SIZE' => 2, 'MIN_ROWS' => 2, - 'NATIONAL' => 2, 'NVARCHAR' => 2, 'ONE_SHOT' => 2, 'PASSWORD' => 2, - 'PRESERVE' => 2, 'PROFILES' => 2, 'REDOFILE' => 2, 'ROLLBACK' => 2, - 'SCHEDULE' => 2, 'SECURITY' => 2, 'SHUTDOWN' => 2, 'SNAPSHOT' => 2, - 'SWITCHES' => 2, 'TRIGGERS' => 2, 'TRUNCATE' => 2, 'UNDOFILE' => 2, - 'WARNINGS' => 2, - 'AGGREGATE' => 2, 'ALGORITHM' => 2, 'COLLATION' => 2, 'COMMITTED' => 2, - 'DIRECTORY' => 2, 'DUPLICATE' => 2, 'EXPANSION' => 2, 'IO_THREAD' => 2, - 'ISOLATION' => 2, 'NODEGROUP' => 2, 'PACK_KEYS' => 2, 'PARTITION' => 2, - 'RAID_TYPE' => 2, 'READ_ONLY' => 2, 'REDUNDANT' => 2, 'SAVEPOINT' => 2, - 'SCHEDULER' => 2, 'SQL_CACHE' => 2, 'TEMPORARY' => 2, 'TEMPTABLE' => 2, - 'TIMESTAMP' => 2, 'UNDEFINED' => 2, 'UNINSTALL' => 2, 'VARIABLES' => 2, - 'BERKELEYDB' => 2, 'COMPLETION' => 2, 'COMPRESSED' => 2, 'CONCURRENT' => 2, - 'CONNECTION' => 2, 'CONSISTENT' => 2, 'DEALLOCATE' => 2, 'GET_FORMAT' => 2, - 'IDENTIFIED' => 2, 'LINESTRING' => 2, 'MASTER_SSL' => 2, 'MULTIPOINT' => 2, - 'NDBCLUSTER' => 2, 'PARTITIONS' => 2, 'PRIVILEGES' => 2, 'REORGANISE' => 2, - 'REORGANIZE' => 2, 'REPEATABLE' => 2, 'ROW_FORMAT' => 2, 'SQL_THREAD' => 2, - 'TABLESPACE' => 2, - 'EXTENT_SIZE' => 2, 'FRAC_SECOND' => 2, 'MASTER_HOST' => 2, 'MASTER_PORT' => 2, - 'MASTER_USER' => 2, 'MICROSECOND' => 2, 'PROCESSLIST' => 2, 'RAID_CHUNKS' => 2, - 'REPLICATION' => 2, 'SQL_TSI_DAY' => 2, 'TRANSACTION' => 2, 'UNCOMMITTED' => 2, - 'CONTRIBUTORS' => 2, 'DES_KEY_FILE' => 2, 'INITIAL_SIZE' => 2, - 'MULTIPOLYGON' => 2, 'OLD_PASSWORD' => 2, 'PARTITIONING' => 2, - 'RELAY_THREAD' => 2, 'SERIALIZABLE' => 2, 'SQL_NO_CACHE' => 2, - 'SQL_TSI_HOUR' => 2, 'SQL_TSI_WEEK' => 2, 'SQL_TSI_YEAR' => 2, - 'SUBPARTITION' => 2, 'TIMESTAMPADD' => 2, - 'INSERT_METHOD' => 2, 'MASTER_SSL_CA' => 2, 'PAGE_CHECKSUM' => 2, - 'RELAY_LOG_POS' => 2, 'SQL_TSI_MONTH' => 2, 'SUBPARTITIONS' => 2, - 'TIMESTAMPDIFF' => 2, 'TRANSACTIONAL' => 2, - 'AUTO_INCREMENT' => 2, 'AVG_ROW_LENGTH' => 2, 'KEY_BLOCK_SIZE' => 2, - 'MASTER_LOG_POS' => 2, 'MASTER_SSL_KEY' => 2, 'RAID_CHUNKSIZE' => 2, - 'RELAY_LOG_FILE' => 2, 'SQL_TSI_MINUTE' => 2, 'SQL_TSI_SECOND' => 2, - 'TABLE_CHECKSUM' => 2, 'USER_RESOURCES' => 2, - 'AUTOEXTEND_SIZE' => 2, 'DELAY_KEY_WRITE' => 2, 'MASTER_LOG_FILE' => 2, - 'MASTER_PASSWORD' => 2, 'MASTER_SSL_CERT' => 2, 'MULTILINESTRING' => 2, - 'SQL_TSI_QUARTER' => 2, - 'MASTER_SERVER_ID' => 2, 'REDO_BUFFER_SIZE' => 2, 'UNDO_BUFFER_SIZE' => 2, - 'MASTER_SSL_CAPATH' => 2, 'MASTER_SSL_CIPHER' => 2, 'SQL_BUFFER_RESULT' => 2, - 'GEOMETRYCOLLECTION' => 2, - 'SQL_TSI_FRAC_SECOND' => 2, - 'MASTER_CONNECT_RETRY' => 2, 'MAX_QUERIES_PER_HOUR' => 2, - 'MAX_UPDATES_PER_HOUR' => 2, 'MAX_USER_CONNECTIONS' => 2, - 'MAX_CONNECTIONS_PER_HOUR' => 2, + 'AS' => 3, 'BY' => 3, 'IF' => 3, 'IN' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, + 'TO' => 3, + 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, + 'FOR' => 3, 'MOD' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, + 'USE' => 3, 'XOR' => 3, + 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, + 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, + 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, + 'KILL' => 3, 'LEFT' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, + 'LOOP' => 3, 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, + 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, + 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, + 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, + 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'MATCH' => 3, 'ORDER' => 3, + 'OUTER' => 3, 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RIGHT' => 3, + 'RLIKE' => 3, 'TABLE' => 3, 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, + 'WHERE' => 3, 'WHILE' => 3, 'WRITE' => 3, + 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, + 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, + 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'INSERT' => 3, 'LINEAR' => 3, + 'OPTION' => 3, 'REGEXP' => 3, 'RENAME' => 3, 'REPEAT' => 3, 'RETURN' => 3, + 'REVOKE' => 3, 'SCHEMA' => 3, 'SELECT' => 3, 'UNLOCK' => 3, 'UPDATE' => 3, + 'VALUES' => 3, + 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'CONVERT' => 3, + 'DECLARE' => 3, 'DEFAULT' => 3, 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, + 'FOREIGN' => 3, 'ITERATE' => 3, 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, + 'PRIMARY' => 3, 'RELEASE' => 3, 'REPLACE' => 3, 'REQUIRE' => 3, 'SCHEMAS' => 3, + 'SPATIAL' => 3, 'TRIGGER' => 3, 'VARYING' => 3, + 'CONTINUE' => 3, 'DATABASE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, + 'DISTINCT' => 3, 'ENCLOSED' => 3, 'FULLTEXT' => 3, 'MODIFIES' => 3, + 'OPTIMIZE' => 3, 'RESTRICT' => 3, 'SPECIFIC' => 3, 'SQLSTATE' => 3, + 'STARTING' => 3, 'TRAILING' => 3, 'UNSIGNED' => 3, 'UTC_DATE' => 3, + 'UTC_TIME' => 3, 'ZEROFILL' => 3, + 'CONDITION' => 3, 'DATABASES' => 3, 'LOCALTIME' => 3, 'MIDDLEINT' => 3, + 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, + 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, + 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, + 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, + 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, + 'CURRENT_DATE' => 3, 'CURRENT_TIME' => 3, 'CURRENT_USER' => 3, + 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, + 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, + 'STRAIGHT_JOIN' => 3, 'UTC_TIMESTAMP' => 3, + 'LOCALTIMESTAMP' => 3, 'SQL_BIG_RESULT' => 3, + 'DAY_MICROSECOND' => 3, + 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, + 'CURRENT_TIMESTAMP' => 3, + 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, + 'SQL_CALC_FOUND_ROWS' => 3, + 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - 'NOT NULL' => 4, - 'INDEX KEY' => 4, - 'UNIQUE KEY' => 4, - 'FOREIGN KEY' => 4, 'PRIMARY KEY' => 4, 'PRIMARY KEY' => 4, 'SPATIAL KEY' => 4, - 'FULLTEXT KEY' => 4, 'UNIQUE INDEX' => 4, - 'CHARACTER SET' => 4, 'IF NOT EXISTS' => 4, 'SPATIAL INDEX' => 4, - 'DATA DIRECTORY' => 4, 'FULLTEXT INDEX' => 4, - 'DEFAULT COLLATE' => 4, 'INDEX DIRECTORY' => 4, - 'DEFAULT CHARACTER SET' => 4, + 'NOT NULL' => 5, + 'ON UPDATE' => 5, + 'CHARACTER SET' => 5, 'IF NOT EXISTS' => 5, + 'DATA DIRECTORY' => 5, + 'DEFAULT COLLATE' => 5, 'INDEX DIRECTORY' => 5, + 'DEFAULT CHARACTER SET' => 5, + + 'XML' => 9, + 'DATE' => 9, 'ENUM' => 9, 'TEXT' => 9, 'TIME' => 9, 'YEAR' => 9, + 'ARRAY' => 9, + 'BOOLEAN' => 9, + 'DATETIME' => 9, 'MULTISET' => 9, + 'TIMESTAMP' => 9, + + 'INT' => 11, 'SET' => 11, + 'BLOB' => 11, 'CHAR' => 11, 'REAL' => 11, + 'FLOAT' => 11, + 'BIGINT' => 11, 'BINARY' => 11, 'DOUBLE' => 11, + 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, + 'INTERVAL' => 11, 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, + 'TINYBLOB' => 11, 'TINYTEXT' => 11, + 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, + 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, + + 'BINARY VARYING' => 13, + + 'KEY' => 19, + 'INDEX' => 19, + 'UNIQUE' => 19, + + 'INDEX KEY' => 21, + 'UNIQUE KEY' => 21, + 'FOREIGN KEY' => 21, 'PRIMARY KEY' => 21, 'SPATIAL KEY' => 21, + 'FULLTEXT KEY' => 21, 'UNIQUE INDEX' => 21, + 'SPATIAL INDEX' => 21, + 'FULLTEXT INDEX' => 21, ); } diff --git a/src/Contexts/ContextMySql50500.php b/src/Contexts/ContextMySql50500.php index 9fe3e87..e0cea95 100644 --- a/src/Contexts/ContextMySql50500.php +++ b/src/Contexts/ContextMySql50500.php @@ -18,173 +18,178 @@ class ContextMySql50500 extends Context public static $KEYWORDS = array( - 'AS' => 1, 'BY' => 1, 'IF' => 1, 'IN' => 1, 'IS' => 1, - 'ON' => 1, 'OR' => 1, 'TO' => 1, - 'ADD' => 1, 'ALL' => 1, 'AND' => 1, 'ASC' => 1, 'DEC' => 1, - 'DIV' => 1, 'FOR' => 1, 'INT' => 1, 'KEY' => 1, 'MOD' => 1, - 'NOT' => 1, 'OUT' => 1, 'SET' => 1, 'SQL' => 1, 'SSL' => 1, - 'USE' => 1, 'XOR' => 1, - 'BLOB' => 1, 'BOTH' => 1, 'CALL' => 1, 'CASE' => 1, - 'CHAR' => 1, 'DESC' => 1, 'DROP' => 1, 'DUAL' => 1, - 'EACH' => 1, 'ELSE' => 1, 'EXIT' => 1, 'FROM' => 1, - 'INT1' => 1, 'INT2' => 1, 'INT3' => 1, 'INT4' => 1, - 'INT8' => 1, 'INTO' => 1, 'JOIN' => 1, 'KEYS' => 1, - 'KILL' => 1, 'LEFT' => 1, 'LIKE' => 1, 'LOAD' => 1, - 'LOCK' => 1, 'LONG' => 1, 'LOOP' => 1, 'NULL' => 1, - 'READ' => 1, 'REAL' => 1, 'SHOW' => 1, 'THEN' => 1, - 'TRUE' => 1, 'UNDO' => 1, 'WHEN' => 1, 'WITH' => 1, - 'ALTER' => 1, 'CHECK' => 1, 'CROSS' => 1, 'FALSE' => 1, - 'FETCH' => 1, 'FLOAT' => 1, 'FORCE' => 1, 'GRANT' => 1, - 'GROUP' => 1, 'INDEX' => 1, 'INNER' => 1, 'INOUT' => 1, - 'LEAVE' => 1, 'LIMIT' => 1, 'LINES' => 1, 'MATCH' => 1, - 'ORDER' => 1, 'OUTER' => 1, 'PURGE' => 1, 'RANGE' => 1, - 'READS' => 1, 'RIGHT' => 1, 'RLIKE' => 1, 'TABLE' => 1, - 'UNION' => 1, 'USAGE' => 1, 'USING' => 1, 'WHERE' => 1, - 'WHILE' => 1, 'WRITE' => 1, - 'BEFORE' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'CHANGE' => 1, - 'COLUMN' => 1, 'CREATE' => 1, 'CURSOR' => 1, 'DELETE' => 1, - 'DOUBLE' => 1, 'ELSEIF' => 1, 'EXISTS' => 1, 'FLOAT4' => 1, - 'FLOAT8' => 1, 'HAVING' => 1, 'IGNORE' => 1, 'INFILE' => 1, - 'INSERT' => 1, 'LINEAR' => 1, 'OPTION' => 1, 'REGEXP' => 1, - 'RENAME' => 1, 'REPEAT' => 1, 'RETURN' => 1, 'REVOKE' => 1, - 'SCHEMA' => 1, 'SELECT' => 1, 'SIGNAL' => 1, 'UNIQUE' => 1, - 'UNLOCK' => 1, 'UPDATE' => 1, 'VALUES' => 1, - 'ANALYZE' => 1, 'BETWEEN' => 1, 'CASCADE' => 1, 'COLLATE' => 1, - 'CONVERT' => 1, 'DECIMAL' => 1, 'DECLARE' => 1, 'DEFAULT' => 1, - 'DELAYED' => 1, 'ESCAPED' => 1, 'EXPLAIN' => 1, 'FOREIGN' => 1, - 'INTEGER' => 1, 'ITERATE' => 1, 'LEADING' => 1, 'NATURAL' => 1, - 'NUMERIC' => 1, 'OUTFILE' => 1, 'PRIMARY' => 1, 'RELEASE' => 1, - 'REPLACE' => 1, 'REQUIRE' => 1, 'SCHEMAS' => 1, 'SPATIAL' => 1, - 'TINYINT' => 1, 'TRIGGER' => 1, 'VARCHAR' => 1, 'VARYING' => 1, - 'CONTINUE' => 1, 'DATABASE' => 1, 'DAY_HOUR' => 1, - 'DESCRIBE' => 1, 'DISTINCT' => 1, 'ENCLOSED' => 1, - 'FULLTEXT' => 1, 'INTERVAL' => 1, 'LONGBLOB' => 1, - 'LONGTEXT' => 1, 'MAXVALUE' => 1, 'MODIFIES' => 1, - 'OPTIMIZE' => 1, 'RESIGNAL' => 1, 'RESTRICT' => 1, - 'SMALLINT' => 1, 'SPECIFIC' => 1, 'SQLSTATE' => 1, - 'STARTING' => 1, 'TINYBLOB' => 1, 'TINYTEXT' => 1, - 'TRAILING' => 1, 'UNSIGNED' => 1, 'UTC_DATE' => 1, - 'UTC_TIME' => 1, 'ZEROFILL' => 1, - 'CHARACTER' => 1, 'CONDITION' => 1, 'DATABASES' => 1, - 'LOCALTIME' => 1, 'MEDIUMINT' => 1, 'MIDDLEINT' => 1, - 'PRECISION' => 1, 'PROCEDURE' => 1, 'SENSITIVE' => 1, - 'SEPARATOR' => 1, 'VARBINARY' => 1, - 'ACCESSIBLE' => 1, 'ASENSITIVE' => 1, 'CONSTRAINT' => 1, - 'DAY_MINUTE' => 1, 'DAY_SECOND' => 1, 'MEDIUMBLOB' => 1, - 'MEDIUMTEXT' => 1, 'OPTIONALLY' => 1, 'READ_WRITE' => 1, - 'REFERENCES' => 1, 'SQLWARNING' => 1, 'TERMINATED' => 1, - 'YEAR_MONTH' => 1, - 'DISTINCTROW' => 1, 'HOUR_MINUTE' => 1, 'HOUR_SECOND' => 1, - 'INSENSITIVE' => 1, - 'CURRENT_DATE' => 1, 'CURRENT_TIME' => 1, 'CURRENT_USER' => 1, - 'LOW_PRIORITY' => 1, 'SQLEXCEPTION' => 1, 'VARCHARACTER' => 1, - 'DETERMINISTIC' => 1, 'HIGH_PRIORITY' => 1, 'MINUTE_SECOND' => 1, - 'STRAIGHT_JOIN' => 1, 'UTC_TIMESTAMP' => 1, - 'LOCALTIMESTAMP' => 1, 'SQL_BIG_RESULT' => 1, - 'DAY_MICROSECOND' => 1, - 'HOUR_MICROSECOND' => 1, 'SQL_SMALL_RESULT' => 1, - 'CURRENT_TIMESTAMP' => 1, - 'MINUTE_MICROSECOND' => 1, 'NO_WRITE_TO_BINLOG' => 1, - 'SECOND_MICROSECOND' => 1, - 'SQL_CALC_FOUND_ROWS' => 1, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 1, + 'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, + 'ANY' => 1, 'AVG' => 1, 'BIT' => 1, 'CPU' => 1, 'DAY' => 1, 'END' => 1, + 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, + 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, + 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, + 'HOST' => 1, 'HOUR' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, + 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'OPEN' => 1, 'PAGE' => 1, + 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, 'STOP' => 1, + 'THAN' => 1, 'TYPE' => 1, 'USER' => 1, 'VIEW' => 1, 'WAIT' => 1, 'WEEK' => 1, + 'WORK' => 1, 'X509' => 1, + 'AFTER' => 1, 'ASCII' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, + 'CACHE' => 1, 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, + 'EVERY' => 1, 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, + 'HOSTS' => 1, 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, + 'MONTH' => 1, 'MUTEX' => 1, 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, + 'PHASE' => 1, 'POINT' => 1, 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, + 'RELAY' => 1, 'RESET' => 1, 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, + 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, + 'VALUE' => 1, + 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, + 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, + 'EVENTS' => 1, 'FAULTS' => 1, 'FIELDS' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, + 'IMPORT' => 1, 'INNODB' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, + 'MEDIUM' => 1, 'MEMORY' => 1, 'MINUTE' => 1, 'MODIFY' => 1, 'OFFSET' => 1, + 'PARSER' => 1, 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, + 'RESUME' => 1, 'ROLLUP' => 1, 'SECOND' => 1, 'SERIAL' => 1, 'SERVER' => 1, + 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, 'SOUNDS' => 1, + 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, + 'AGAINST' => 1, 'AUTHORS' => 1, 'CHANGED' => 1, 'CHARSET' => 1, 'COLUMNS' => 1, + 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, + 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, 'EXECUTE' => 1, 'GENERAL' => 1, + 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, 'INVOKER' => 1, 'LOGFILE' => 1, + 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, 'PARTIAL' => 1, 'PLUGINS' => 1, + 'POLYGON' => 1, 'PREPARE' => 1, 'PROFILE' => 1, 'QUARTER' => 1, 'REBUILD' => 1, + 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, 'ROUTINE' => 1, 'SESSION' => 1, + 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, 'UNKNOWN' => 1, + 'UPGRADE' => 1, 'USE_FRM' => 1, 'WRAPPER' => 1, + 'CASCADED' => 1, 'CHECKSUM' => 1, 'COALESCE' => 1, 'CONTAINS' => 1, + 'DATAFILE' => 1, 'DUMPFILE' => 1, 'EXTENDED' => 1, 'FUNCTION' => 1, + 'GEOMETRY' => 1, 'INNOBASE' => 1, 'LANGUAGE' => 1, 'MAX_ROWS' => 1, + 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, 'NVARCHAR' => 1, + 'ONE_SHOT' => 1, 'PASSWORD' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, + 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, + 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, + 'TRIGGERS' => 1, 'TRUNCATE' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, + 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COLLATION' => 1, 'COMMITTED' => 1, + 'DIRECTORY' => 1, 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, + 'ISOLATION' => 1, 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'PARTITION' => 1, + 'READ_ONLY' => 1, 'REDUNDANT' => 1, 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, + 'TEMPORARY' => 1, 'TEMPTABLE' => 1, 'UNDEFINED' => 1, 'UNINSTALL' => 1, + 'VARIABLES' => 1, + 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, + 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'GET_FORMAT' => 1, 'IDENTIFIED' => 1, + 'LINESTRING' => 1, 'MASTER_SSL' => 1, 'MULTIPOINT' => 1, 'NDBCLUSTER' => 1, + 'PARTITIONS' => 1, 'PRIVILEGES' => 1, 'REORGANIZE' => 1, 'REPEATABLE' => 1, + 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, 'TABLESPACE' => 1, 'TABLE_NAME' => 1, + 'COLUMN_NAME' => 1, 'CURSOR_NAME' => 1, 'EXTENT_SIZE' => 1, 'FRAC_SECOND' => 1, + 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, 'MICROSECOND' => 1, + 'MYSQL_ERRNO' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, 'SCHEMA_NAME' => 1, + 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, + 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'CONTRIBUTORS' => 1, + 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MESSAGE_TEXT' => 1, + 'MULTIPOLYGON' => 1, 'OLD_PASSWORD' => 1, 'PARTITIONING' => 1, + 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, + 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, + 'SUBPARTITION' => 1, 'TIMESTAMPADD' => 1, + 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, 'RELAY_LOG_POS' => 1, + 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, 'TIMESTAMPDIFF' => 1, + 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, + 'MASTER_LOG_POS' => 1, 'MASTER_SSL_KEY' => 1, 'RELAY_LOG_FILE' => 1, + 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, 'TABLE_CHECKSUM' => 1, + 'USER_RESOURCES' => 1, + 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, + 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, + 'MULTILINESTRING' => 1, 'SQL_TSI_QUARTER' => 1, 'SUBCLASS_ORIGIN' => 1, + 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'UNDO_BUFFER_SIZE' => 1, + 'CONSTRAINT_SCHEMA' => 1, 'IGNORE_SERVER_IDS' => 1, 'MASTER_SSL_CAPATH' => 1, + 'MASTER_SSL_CIPHER' => 1, 'SQL_BUFFER_RESULT' => 1, + 'CONSTRAINT_CATALOG' => 1, 'GEOMETRYCOLLECTION' => 1, + 'SQL_TSI_FRAC_SECOND' => 1, + 'MASTER_CONNECT_RETRY' => 1, 'MAX_QUERIES_PER_HOUR' => 1, + 'MAX_UPDATES_PER_HOUR' => 1, 'MAX_USER_CONNECTIONS' => 1, + 'MASTER_HEARTBEAT_PERIOD' => 1, + 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'AT' => 2, 'DO' => 2, 'IO' => 2, 'NO' => 2, 'XA' => 2, - 'ANY' => 2, 'AVG' => 2, 'BIT' => 2, 'CPU' => 2, 'DAY' => 2, 'END' => 2, - 'IPC' => 2, 'NDB' => 2, 'NEW' => 2, 'ONE' => 2, 'ROW' => 2, 'XML' => 2, - 'BOOL' => 2, 'BYTE' => 2, 'CODE' => 2, 'CUBE' => 2, 'DATA' => 2, 'DATE' => 2, - 'DISK' => 2, 'ENDS' => 2, 'ENUM' => 2, 'FAST' => 2, 'FILE' => 2, 'FULL' => 2, - 'HASH' => 2, 'HELP' => 2, 'HOST' => 2, 'HOUR' => 2, 'LAST' => 2, 'LESS' => 2, - 'LIST' => 2, 'LOGS' => 2, 'MODE' => 2, 'NAME' => 2, 'NEXT' => 2, 'NONE' => 2, - 'OPEN' => 2, 'PAGE' => 2, 'PORT' => 2, 'PREV' => 2, 'ROWS' => 2, 'SLOW' => 2, - 'SOME' => 2, 'STOP' => 2, 'TEXT' => 2, 'THAN' => 2, 'TIME' => 2, 'TYPE' => 2, - 'USER' => 2, 'VIEW' => 2, 'WAIT' => 2, 'WEEK' => 2, 'WORK' => 2, 'X509' => 2, - 'YEAR' => 2, - 'AFTER' => 2, 'ASCII' => 2, 'BEGIN' => 2, 'BLOCK' => 2, 'BTREE' => 2, - 'CACHE' => 2, 'CHAIN' => 2, 'CLOSE' => 2, 'ERROR' => 2, 'EVENT' => 2, - 'EVERY' => 2, 'FIRST' => 2, 'FIXED' => 2, 'FLUSH' => 2, 'FOUND' => 2, - 'HOSTS' => 2, 'LEVEL' => 2, 'LOCAL' => 2, 'LOCKS' => 2, 'MERGE' => 2, - 'MONTH' => 2, 'MUTEX' => 2, 'NAMES' => 2, 'NCHAR' => 2, 'OWNER' => 2, - 'PHASE' => 2, 'POINT' => 2, 'PROXY' => 2, 'QUERY' => 2, 'QUICK' => 2, - 'RELAY' => 2, 'RESET' => 2, 'RTREE' => 2, 'SHARE' => 2, 'SLAVE' => 2, - 'START' => 2, 'SUPER' => 2, 'SWAPS' => 2, 'TYPES' => 2, 'UNTIL' => 2, - 'VALUE' => 2, - 'ACTION' => 2, 'BACKUP' => 2, 'BINLOG' => 2, 'CIPHER' => 2, 'CLIENT' => 2, - 'COMMIT' => 2, 'ENABLE' => 2, 'ENGINE' => 2, 'ERRORS' => 2, 'ESCAPE' => 2, - 'EVENTS' => 2, 'FAULTS' => 2, 'FIELDS' => 2, 'GLOBAL' => 2, 'GRANTS' => 2, - 'IMPORT' => 2, 'INNODB' => 2, 'ISSUER' => 2, 'LEAVES' => 2, 'MASTER' => 2, - 'MEDIUM' => 2, 'MEMORY' => 2, 'MINUTE' => 2, 'MODIFY' => 2, 'OFFSET' => 2, - 'PARSER' => 2, 'PLUGIN' => 2, 'RELOAD' => 2, 'REMOVE' => 2, 'REPAIR' => 2, - 'RESUME' => 2, 'ROLLUP' => 2, 'SECOND' => 2, 'SERIAL' => 2, 'SERVER' => 2, - 'SIGNED' => 2, 'SIMPLE' => 2, 'SOCKET' => 2, 'SONAME' => 2, 'SOUNDS' => 2, - 'SOURCE' => 2, 'STARTS' => 2, 'STATUS' => 2, 'STRING' => 2, 'TABLES' => 2, - 'AGAINST' => 2, 'AUTHORS' => 2, 'BOOLEAN' => 2, 'CHANGED' => 2, 'CHARSET' => 2, - 'COLUMNS' => 2, 'COMMENT' => 2, 'COMPACT' => 2, 'CONTEXT' => 2, 'DEFINER' => 2, - 'DISABLE' => 2, 'DISCARD' => 2, 'DYNAMIC' => 2, 'ENGINES' => 2, 'EXECUTE' => 2, - 'GENERAL' => 2, 'HANDLER' => 2, 'INDEXES' => 2, 'INSTALL' => 2, 'INVOKER' => 2, - 'LOGFILE' => 2, 'MIGRATE' => 2, 'NO_WAIT' => 2, 'OPTIONS' => 2, 'PARTIAL' => 2, - 'PLUGINS' => 2, 'POLYGON' => 2, 'PREPARE' => 2, 'PROFILE' => 2, 'QUARTER' => 2, - 'REBUILD' => 2, 'RECOVER' => 2, 'RESTORE' => 2, 'RETURNS' => 2, 'ROUTINE' => 2, - 'SESSION' => 2, 'STORAGE' => 2, 'SUBJECT' => 2, 'SUSPEND' => 2, 'UNICODE' => 2, - 'UNKNOWN' => 2, 'UPGRADE' => 2, 'USE_FRM' => 2, 'WRAPPER' => 2, - 'CASCADED' => 2, 'CHECKSUM' => 2, 'COALESCE' => 2, 'CONTAINS' => 2, - 'DATAFILE' => 2, 'DATETIME' => 2, 'DUMPFILE' => 2, 'EXTENDED' => 2, - 'FUNCTION' => 2, 'GEOMETRY' => 2, 'INNOBASE' => 2, 'LANGUAGE' => 2, - 'MAX_ROWS' => 2, 'MAX_SIZE' => 2, 'MIN_ROWS' => 2, 'NATIONAL' => 2, - 'NVARCHAR' => 2, 'ONE_SHOT' => 2, 'PASSWORD' => 2, 'PRESERVE' => 2, - 'PROFILES' => 2, 'REDOFILE' => 2, 'RELAYLOG' => 2, 'ROLLBACK' => 2, - 'SCHEDULE' => 2, 'SECURITY' => 2, 'SHUTDOWN' => 2, 'SNAPSHOT' => 2, - 'SWITCHES' => 2, 'TRIGGERS' => 2, 'TRUNCATE' => 2, 'UNDOFILE' => 2, - 'WARNINGS' => 2, - 'AGGREGATE' => 2, 'ALGORITHM' => 2, 'COLLATION' => 2, 'COMMITTED' => 2, - 'DIRECTORY' => 2, 'DUPLICATE' => 2, 'EXPANSION' => 2, 'IO_THREAD' => 2, - 'ISOLATION' => 2, 'NODEGROUP' => 2, 'PACK_KEYS' => 2, 'PARTITION' => 2, - 'READ_ONLY' => 2, 'REDUNDANT' => 2, 'SAVEPOINT' => 2, 'SQL_CACHE' => 2, - 'TEMPORARY' => 2, 'TEMPTABLE' => 2, 'TIMESTAMP' => 2, 'UNDEFINED' => 2, - 'UNINSTALL' => 2, 'VARIABLES' => 2, - 'COMPLETION' => 2, 'COMPRESSED' => 2, 'CONCURRENT' => 2, 'CONNECTION' => 2, - 'CONSISTENT' => 2, 'DEALLOCATE' => 2, 'GET_FORMAT' => 2, 'IDENTIFIED' => 2, - 'LINESTRING' => 2, 'MASTER_SSL' => 2, 'MULTIPOINT' => 2, 'NDBCLUSTER' => 2, - 'PARTITIONS' => 2, 'PRIVILEGES' => 2, 'REORGANIZE' => 2, 'REPEATABLE' => 2, - 'ROW_FORMAT' => 2, 'SQL_THREAD' => 2, 'TABLESPACE' => 2, 'TABLE_NAME' => 2, - 'COLUMN_NAME' => 2, 'CURSOR_NAME' => 2, 'EXTENT_SIZE' => 2, 'FRAC_SECOND' => 2, - 'MASTER_HOST' => 2, 'MASTER_PORT' => 2, 'MASTER_USER' => 2, 'MICROSECOND' => 2, - 'MYSQL_ERRNO' => 2, 'PROCESSLIST' => 2, 'REPLICATION' => 2, 'SCHEMA_NAME' => 2, - 'SQL_TSI_DAY' => 2, 'TRANSACTION' => 2, 'UNCOMMITTED' => 2, - 'CATALOG_NAME' => 2, 'CLASS_ORIGIN' => 2, 'CONTRIBUTORS' => 2, - 'DES_KEY_FILE' => 2, 'INITIAL_SIZE' => 2, 'MESSAGE_TEXT' => 2, - 'MULTIPOLYGON' => 2, 'OLD_PASSWORD' => 2, 'PARTITIONING' => 2, - 'RELAY_THREAD' => 2, 'SERIALIZABLE' => 2, 'SQL_NO_CACHE' => 2, - 'SQL_TSI_HOUR' => 2, 'SQL_TSI_WEEK' => 2, 'SQL_TSI_YEAR' => 2, - 'SUBPARTITION' => 2, 'TIMESTAMPADD' => 2, - 'INSERT_METHOD' => 2, 'MASTER_SSL_CA' => 2, 'RELAY_LOG_POS' => 2, - 'SQL_TSI_MONTH' => 2, 'SUBPARTITIONS' => 2, 'TIMESTAMPDIFF' => 2, - 'AUTO_INCREMENT' => 2, 'AVG_ROW_LENGTH' => 2, 'KEY_BLOCK_SIZE' => 2, - 'MASTER_LOG_POS' => 2, 'MASTER_SSL_KEY' => 2, 'RELAY_LOG_FILE' => 2, - 'SQL_TSI_MINUTE' => 2, 'SQL_TSI_SECOND' => 2, 'TABLE_CHECKSUM' => 2, - 'USER_RESOURCES' => 2, - 'AUTOEXTEND_SIZE' => 2, 'CONSTRAINT_NAME' => 2, 'DELAY_KEY_WRITE' => 2, - 'MASTER_LOG_FILE' => 2, 'MASTER_PASSWORD' => 2, 'MASTER_SSL_CERT' => 2, - 'MULTILINESTRING' => 2, 'SQL_TSI_QUARTER' => 2, 'SUBCLASS_ORIGIN' => 2, - 'MASTER_SERVER_ID' => 2, 'REDO_BUFFER_SIZE' => 2, 'UNDO_BUFFER_SIZE' => 2, - 'CONSTRAINT_SCHEMA' => 2, 'IGNORE_SERVER_IDS' => 2, 'MASTER_SSL_CAPATH' => 2, - 'MASTER_SSL_CIPHER' => 2, 'SQL_BUFFER_RESULT' => 2, - 'CONSTRAINT_CATALOG' => 2, 'GEOMETRYCOLLECTION' => 2, - 'SQL_TSI_FRAC_SECOND' => 2, - 'MASTER_CONNECT_RETRY' => 2, 'MAX_QUERIES_PER_HOUR' => 2, - 'MAX_UPDATES_PER_HOUR' => 2, 'MAX_USER_CONNECTIONS' => 2, - 'MASTER_HEARTBEAT_PERIOD' => 2, - 'MAX_CONNECTIONS_PER_HOUR' => 2, + 'AS' => 3, 'BY' => 3, 'IF' => 3, 'IN' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, + 'TO' => 3, + 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, + 'FOR' => 3, 'MOD' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, 'SSL' => 3, + 'USE' => 3, 'XOR' => 3, + 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, + 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, + 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, + 'KILL' => 3, 'LEFT' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, + 'LOOP' => 3, 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, + 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, + 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, + 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, + 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'MATCH' => 3, 'ORDER' => 3, + 'OUTER' => 3, 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RIGHT' => 3, + 'RLIKE' => 3, 'TABLE' => 3, 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, + 'WHERE' => 3, 'WHILE' => 3, 'WRITE' => 3, + 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, + 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, + 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'INSERT' => 3, 'LINEAR' => 3, + 'OPTION' => 3, 'REGEXP' => 3, 'RENAME' => 3, 'REPEAT' => 3, 'RETURN' => 3, + 'REVOKE' => 3, 'SCHEMA' => 3, 'SELECT' => 3, 'SIGNAL' => 3, 'UNLOCK' => 3, + 'UPDATE' => 3, 'VALUES' => 3, + 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'CONVERT' => 3, + 'DECLARE' => 3, 'DEFAULT' => 3, 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, + 'FOREIGN' => 3, 'ITERATE' => 3, 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, + 'PRIMARY' => 3, 'RELEASE' => 3, 'REPLACE' => 3, 'REQUIRE' => 3, 'SCHEMAS' => 3, + 'SPATIAL' => 3, 'TRIGGER' => 3, 'VARYING' => 3, + 'CONTINUE' => 3, 'DATABASE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, + 'DISTINCT' => 3, 'ENCLOSED' => 3, 'FULLTEXT' => 3, 'MAXVALUE' => 3, + 'MODIFIES' => 3, 'OPTIMIZE' => 3, 'RESIGNAL' => 3, 'RESTRICT' => 3, + 'SPECIFIC' => 3, 'SQLSTATE' => 3, 'STARTING' => 3, 'TRAILING' => 3, + 'UNSIGNED' => 3, 'UTC_DATE' => 3, 'UTC_TIME' => 3, 'ZEROFILL' => 3, + 'CONDITION' => 3, 'DATABASES' => 3, 'LOCALTIME' => 3, 'MIDDLEINT' => 3, + 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, 'SEPARATOR' => 3, + 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, + 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, + 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, + 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, + 'CURRENT_DATE' => 3, 'CURRENT_TIME' => 3, 'CURRENT_USER' => 3, + 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, + 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, + 'STRAIGHT_JOIN' => 3, 'UTC_TIMESTAMP' => 3, + 'LOCALTIMESTAMP' => 3, 'SQL_BIG_RESULT' => 3, + 'DAY_MICROSECOND' => 3, + 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, + 'CURRENT_TIMESTAMP' => 3, + 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, + 'SQL_CALC_FOUND_ROWS' => 3, + 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - 'NOT NULL' => 4, - 'INDEX KEY' => 4, - 'UNIQUE KEY' => 4, - 'FOREIGN KEY' => 4, 'PRIMARY KEY' => 4, 'PRIMARY KEY' => 4, 'SPATIAL KEY' => 4, - 'FULLTEXT KEY' => 4, 'UNIQUE INDEX' => 4, - 'CHARACTER SET' => 4, 'IF NOT EXISTS' => 4, 'SPATIAL INDEX' => 4, - 'DATA DIRECTORY' => 4, 'FULLTEXT INDEX' => 4, - 'DEFAULT COLLATE' => 4, 'INDEX DIRECTORY' => 4, - 'DEFAULT CHARACTER SET' => 4, + 'NOT NULL' => 5, + 'ON UPDATE' => 5, + 'CHARACTER SET' => 5, 'IF NOT EXISTS' => 5, + 'DATA DIRECTORY' => 5, + 'DEFAULT COLLATE' => 5, 'INDEX DIRECTORY' => 5, + 'DEFAULT CHARACTER SET' => 5, + + 'XML' => 9, + 'DATE' => 9, 'ENUM' => 9, 'TEXT' => 9, 'TIME' => 9, 'YEAR' => 9, + 'ARRAY' => 9, + 'BOOLEAN' => 9, + 'DATETIME' => 9, 'MULTISET' => 9, + 'TIMESTAMP' => 9, + + 'INT' => 11, 'SET' => 11, + 'BLOB' => 11, 'CHAR' => 11, 'REAL' => 11, + 'FLOAT' => 11, + 'BIGINT' => 11, 'BINARY' => 11, 'DOUBLE' => 11, + 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, + 'INTERVAL' => 11, 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, + 'TINYBLOB' => 11, 'TINYTEXT' => 11, + 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, + 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, + + 'BINARY VARYING' => 13, + + 'KEY' => 19, + 'INDEX' => 19, + 'UNIQUE' => 19, + + 'INDEX KEY' => 21, + 'UNIQUE KEY' => 21, + 'FOREIGN KEY' => 21, 'PRIMARY KEY' => 21, 'SPATIAL KEY' => 21, + 'FULLTEXT KEY' => 21, 'UNIQUE INDEX' => 21, + 'SPATIAL INDEX' => 21, + 'FULLTEXT INDEX' => 21, ); } diff --git a/src/Contexts/ContextMySql50600.php b/src/Contexts/ContextMySql50600.php index b465026..1fad4fa 100644 --- a/src/Contexts/ContextMySql50600.php +++ b/src/Contexts/ContextMySql50600.php @@ -18,182 +18,189 @@ class ContextMySql50600 extends Context public static $KEYWORDS = array( - 'AS' => 1, 'BY' => 1, 'IF' => 1, 'IN' => 1, 'IS' => 1, - 'ON' => 1, 'OR' => 1, 'TO' => 1, - 'ADD' => 1, 'ALL' => 1, 'AND' => 1, 'ASC' => 1, 'DEC' => 1, - 'DIV' => 1, 'FOR' => 1, 'GET' => 1, 'INT' => 1, 'KEY' => 1, - 'MOD' => 1, 'NOT' => 1, 'OUT' => 1, 'SET' => 1, 'SQL' => 1, - 'SSL' => 1, 'USE' => 1, 'XOR' => 1, - 'BLOB' => 1, 'BOTH' => 1, 'CALL' => 1, 'CASE' => 1, - 'CHAR' => 1, 'DESC' => 1, 'DROP' => 1, 'DUAL' => 1, - 'EACH' => 1, 'ELSE' => 1, 'EXIT' => 1, 'FROM' => 1, - 'INT1' => 1, 'INT2' => 1, 'INT3' => 1, 'INT4' => 1, - 'INT8' => 1, 'INTO' => 1, 'JOIN' => 1, 'KEYS' => 1, - 'KILL' => 1, 'LEFT' => 1, 'LIKE' => 1, 'LOAD' => 1, - 'LOCK' => 1, 'LONG' => 1, 'LOOP' => 1, 'NULL' => 1, - 'READ' => 1, 'REAL' => 1, 'SHOW' => 1, 'THEN' => 1, - 'TRUE' => 1, 'UNDO' => 1, 'WHEN' => 1, 'WITH' => 1, - 'ALTER' => 1, 'CHECK' => 1, 'CROSS' => 1, 'FALSE' => 1, - 'FETCH' => 1, 'FLOAT' => 1, 'FORCE' => 1, 'GRANT' => 1, - 'GROUP' => 1, 'INDEX' => 1, 'INNER' => 1, 'INOUT' => 1, - 'LEAVE' => 1, 'LIMIT' => 1, 'LINES' => 1, 'MATCH' => 1, - 'ORDER' => 1, 'OUTER' => 1, 'PURGE' => 1, 'RANGE' => 1, - 'READS' => 1, 'RIGHT' => 1, 'RLIKE' => 1, 'TABLE' => 1, - 'UNION' => 1, 'USAGE' => 1, 'USING' => 1, 'WHERE' => 1, - 'WHILE' => 1, 'WRITE' => 1, - 'BEFORE' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'CHANGE' => 1, - 'COLUMN' => 1, 'CREATE' => 1, 'CURSOR' => 1, 'DELETE' => 1, - 'DOUBLE' => 1, 'ELSEIF' => 1, 'EXISTS' => 1, 'FLOAT4' => 1, - 'FLOAT8' => 1, 'HAVING' => 1, 'IGNORE' => 1, 'INFILE' => 1, - 'INSERT' => 1, 'LINEAR' => 1, 'OPTION' => 1, 'REGEXP' => 1, - 'RENAME' => 1, 'REPEAT' => 1, 'RETURN' => 1, 'REVOKE' => 1, - 'SCHEMA' => 1, 'SELECT' => 1, 'SIGNAL' => 1, 'UNIQUE' => 1, - 'UNLOCK' => 1, 'UPDATE' => 1, 'VALUES' => 1, - 'ANALYZE' => 1, 'BETWEEN' => 1, 'CASCADE' => 1, 'COLLATE' => 1, - 'CONVERT' => 1, 'DECIMAL' => 1, 'DECLARE' => 1, 'DEFAULT' => 1, - 'DELAYED' => 1, 'ESCAPED' => 1, 'EXPLAIN' => 1, 'FOREIGN' => 1, - 'INTEGER' => 1, 'ITERATE' => 1, 'LEADING' => 1, 'NATURAL' => 1, - 'NUMERIC' => 1, 'OUTFILE' => 1, 'PRIMARY' => 1, 'RELEASE' => 1, - 'REPLACE' => 1, 'REQUIRE' => 1, 'SCHEMAS' => 1, 'SPATIAL' => 1, - 'TINYINT' => 1, 'TRIGGER' => 1, 'VARCHAR' => 1, 'VARYING' => 1, - 'CONTINUE' => 1, 'DATABASE' => 1, 'DAY_HOUR' => 1, - 'DESCRIBE' => 1, 'DISTINCT' => 1, 'ENCLOSED' => 1, - 'FULLTEXT' => 1, 'INTERVAL' => 1, 'LONGBLOB' => 1, - 'LONGTEXT' => 1, 'MAXVALUE' => 1, 'MODIFIES' => 1, - 'OPTIMIZE' => 1, 'RESIGNAL' => 1, 'RESTRICT' => 1, - 'SMALLINT' => 1, 'SPECIFIC' => 1, 'SQLSTATE' => 1, - 'STARTING' => 1, 'TINYBLOB' => 1, 'TINYTEXT' => 1, - 'TRAILING' => 1, 'UNSIGNED' => 1, 'UTC_DATE' => 1, - 'UTC_TIME' => 1, 'ZEROFILL' => 1, - 'CHARACTER' => 1, 'CONDITION' => 1, 'DATABASES' => 1, - 'LOCALTIME' => 1, 'MEDIUMINT' => 1, 'MIDDLEINT' => 1, - 'PARTITION' => 1, 'PRECISION' => 1, 'PROCEDURE' => 1, - 'SENSITIVE' => 1, 'SEPARATOR' => 1, 'VARBINARY' => 1, - 'ACCESSIBLE' => 1, 'ASENSITIVE' => 1, 'CONSTRAINT' => 1, - 'DAY_MINUTE' => 1, 'DAY_SECOND' => 1, 'MEDIUMBLOB' => 1, - 'MEDIUMTEXT' => 1, 'OPTIONALLY' => 1, 'READ_WRITE' => 1, - 'REFERENCES' => 1, 'SQLWARNING' => 1, 'TERMINATED' => 1, - 'YEAR_MONTH' => 1, - 'DISTINCTROW' => 1, 'HOUR_MINUTE' => 1, 'HOUR_SECOND' => 1, - 'INSENSITIVE' => 1, 'MASTER_BIND' => 1, - 'CURRENT_DATE' => 1, 'CURRENT_TIME' => 1, 'CURRENT_USER' => 1, - 'LOW_PRIORITY' => 1, 'SQLEXCEPTION' => 1, 'VARCHARACTER' => 1, - 'DETERMINISTIC' => 1, 'HIGH_PRIORITY' => 1, 'MINUTE_SECOND' => 1, - 'STRAIGHT_JOIN' => 1, 'UTC_TIMESTAMP' => 1, - 'IO_AFTER_GTIDS' => 1, 'LOCALTIMESTAMP' => 1, 'SQL_BIG_RESULT' => 1, - 'DAY_MICROSECOND' => 1, 'IO_BEFORE_GTIDS' => 1, - 'HOUR_MICROSECOND' => 1, 'SQL_SMALL_RESULT' => 1, - 'CURRENT_TIMESTAMP' => 1, - 'MINUTE_MICROSECOND' => 1, 'NO_WRITE_TO_BINLOG' => 1, - 'SECOND_MICROSECOND' => 1, - 'SQL_CALC_FOUND_ROWS' => 1, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 1, + 'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, + 'ANY' => 1, 'AVG' => 1, 'BIT' => 1, 'CPU' => 1, 'DAY' => 1, 'END' => 1, + 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, + 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, + 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, + 'HOST' => 1, 'HOUR' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, + 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, + 'PAGE' => 1, 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, + 'STOP' => 1, 'THAN' => 1, 'TYPE' => 1, 'USER' => 1, 'VIEW' => 1, 'WAIT' => 1, + 'WEEK' => 1, 'WORK' => 1, 'X509' => 1, + 'AFTER' => 1, 'ASCII' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, + 'CACHE' => 1, 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, + 'EVERY' => 1, 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, + 'HOSTS' => 1, 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, + 'MONTH' => 1, 'MUTEX' => 1, 'NAMES' => 1, 'NCHAR' => 1, 'OWNER' => 1, + 'PHASE' => 1, 'POINT' => 1, 'PROXY' => 1, 'QUERY' => 1, 'QUICK' => 1, + 'RELAY' => 1, 'RESET' => 1, 'RTREE' => 1, 'SHARE' => 1, 'SLAVE' => 1, + 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, 'TYPES' => 1, 'UNTIL' => 1, + 'VALUE' => 1, + 'ACTION' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, 'CLIENT' => 1, + 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, 'ESCAPE' => 1, + 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, 'FIELDS' => 1, + 'FORMAT' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, 'IMPORT' => 1, 'ISSUER' => 1, + 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, 'MEMORY' => 1, 'MINUTE' => 1, + 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, 'PARSER' => 1, 'PLUGIN' => 1, + 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, 'RESUME' => 1, 'ROLLUP' => 1, + 'SECOND' => 1, 'SERIAL' => 1, 'SERVER' => 1, 'SIGNED' => 1, 'SIMPLE' => 1, + 'SOCKET' => 1, 'SONAME' => 1, 'SOUNDS' => 1, 'SOURCE' => 1, 'STARTS' => 1, + 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, + 'AGAINST' => 1, 'ANALYSE' => 1, 'AUTHORS' => 1, 'CHANGED' => 1, 'CHARSET' => 1, + 'COLUMNS' => 1, 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, 'CURRENT' => 1, + 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, 'ENGINES' => 1, + 'EXECUTE' => 1, 'GENERAL' => 1, 'HANDLER' => 1, 'INDEXES' => 1, 'INSTALL' => 1, + 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, 'NO_WAIT' => 1, 'OPTIONS' => 1, + 'PARTIAL' => 1, 'PLUGINS' => 1, 'POLYGON' => 1, 'PREPARE' => 1, 'PROFILE' => 1, + 'QUARTER' => 1, 'REBUILD' => 1, 'RECOVER' => 1, 'RESTORE' => 1, 'RETURNS' => 1, + 'REVERSE' => 1, 'ROUTINE' => 1, 'SESSION' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, + 'SUSPEND' => 1, 'UNICODE' => 1, 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, + 'WRAPPER' => 1, + 'CASCADED' => 1, 'CHECKSUM' => 1, 'COALESCE' => 1, 'CONTAINS' => 1, + 'DATAFILE' => 1, 'DUMPFILE' => 1, 'EXCHANGE' => 1, 'EXTENDED' => 1, + 'FUNCTION' => 1, 'GEOMETRY' => 1, 'LANGUAGE' => 1, 'MAX_ROWS' => 1, + 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, 'NVARCHAR' => 1, + 'ONE_SHOT' => 1, 'PASSWORD' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, + 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, + 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, + 'TRIGGERS' => 1, 'TRUNCATE' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, + 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COLLATION' => 1, 'COMMITTED' => 1, + 'DIRECTORY' => 1, 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, + 'ISOLATION' => 1, 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, + 'REDUNDANT' => 1, 'ROW_COUNT' => 1, 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, + 'TEMPORARY' => 1, 'TEMPTABLE' => 1, 'UNDEFINED' => 1, 'UNINSTALL' => 1, + 'VARIABLES' => 1, + 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, + 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'GET_FORMAT' => 1, 'IDENTIFIED' => 1, + 'LINESTRING' => 1, 'MASTER_SSL' => 1, 'MULTIPOINT' => 1, 'NDBCLUSTER' => 1, + 'PARTITIONS' => 1, 'PLUGIN_DIR' => 1, 'PRIVILEGES' => 1, 'REORGANIZE' => 1, + 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, 'TABLESPACE' => 1, + 'TABLE_NAME' => 1, + 'COLUMN_NAME' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, 'EXTENT_SIZE' => 1, + 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, 'MICROSECOND' => 1, + 'MYSQL_ERRNO' => 1, 'PROCESSLIST' => 1, 'REPLICATION' => 1, 'SCHEMA_NAME' => 1, + 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, 'UNCOMMITTED' => 1, + 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'CONTRIBUTORS' => 1, + 'DEFAULT_AUTH' => 1, 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, + 'MASTER_DELAY' => 1, 'MESSAGE_TEXT' => 1, 'MULTIPOLYGON' => 1, + 'OLD_PASSWORD' => 1, 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, + 'SERIALIZABLE' => 1, 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, + 'SQL_TSI_WEEK' => 1, 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, + 'TIMESTAMPADD' => 1, + 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, + 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, + 'TIMESTAMPDIFF' => 1, 'WEIGHT_STRING' => 1, + 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, + 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, + 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, + 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, + 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, + 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, 'MASTER_SSL_CERT' => 1, + 'MULTILINESTRING' => 1, 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, + 'SUBCLASS_ORIGIN' => 1, + 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, + 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, + 'CONSTRAINT_SCHEMA' => 1, 'IGNORE_SERVER_IDS' => 1, 'MASTER_SSL_CAPATH' => 1, + 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, 'SQL_BUFFER_RESULT' => 1, + 'STATS_AUTO_RECALC' => 1, + 'CONSTRAINT_CATALOG' => 1, 'GEOMETRYCOLLECTION' => 1, 'MASTER_RETRY_COUNT' => 1, + 'MASTER_SSL_CRLPATH' => 1, 'SQL_AFTER_MTS_GAPS' => 1, 'STATS_SAMPLE_PAGES' => 1, + 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, + 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, + 'MAX_USER_CONNECTIONS' => 1, + 'MASTER_HEARTBEAT_PERIOD' => 1, + 'MAX_CONNECTIONS_PER_HOUR' => 1, - 'AT' => 2, 'DO' => 2, 'IO' => 2, 'NO' => 2, 'XA' => 2, - 'ANY' => 2, 'AVG' => 2, 'BIT' => 2, 'CPU' => 2, 'DAY' => 2, 'END' => 2, - 'IPC' => 2, 'NDB' => 2, 'NEW' => 2, 'ONE' => 2, 'ROW' => 2, 'XML' => 2, - 'BOOL' => 2, 'BYTE' => 2, 'CODE' => 2, 'CUBE' => 2, 'DATA' => 2, 'DATE' => 2, - 'DISK' => 2, 'ENDS' => 2, 'ENUM' => 2, 'FAST' => 2, 'FILE' => 2, 'FULL' => 2, - 'HASH' => 2, 'HELP' => 2, 'HOST' => 2, 'HOUR' => 2, 'LAST' => 2, 'LESS' => 2, - 'LIST' => 2, 'LOGS' => 2, 'MODE' => 2, 'NAME' => 2, 'NEXT' => 2, 'NONE' => 2, - 'ONLY' => 2, 'OPEN' => 2, 'PAGE' => 2, 'PORT' => 2, 'PREV' => 2, 'ROWS' => 2, - 'SLOW' => 2, 'SOME' => 2, 'STOP' => 2, 'TEXT' => 2, 'THAN' => 2, 'TIME' => 2, - 'TYPE' => 2, 'USER' => 2, 'VIEW' => 2, 'WAIT' => 2, 'WEEK' => 2, 'WORK' => 2, - 'X509' => 2, 'YEAR' => 2, - 'AFTER' => 2, 'ASCII' => 2, 'BEGIN' => 2, 'BLOCK' => 2, 'BTREE' => 2, - 'CACHE' => 2, 'CHAIN' => 2, 'CLOSE' => 2, 'ERROR' => 2, 'EVENT' => 2, - 'EVERY' => 2, 'FIRST' => 2, 'FIXED' => 2, 'FLUSH' => 2, 'FOUND' => 2, - 'HOSTS' => 2, 'LEVEL' => 2, 'LOCAL' => 2, 'LOCKS' => 2, 'MERGE' => 2, - 'MONTH' => 2, 'MUTEX' => 2, 'NAMES' => 2, 'NCHAR' => 2, 'OWNER' => 2, - 'PHASE' => 2, 'POINT' => 2, 'PROXY' => 2, 'QUERY' => 2, 'QUICK' => 2, - 'RELAY' => 2, 'RESET' => 2, 'RTREE' => 2, 'SHARE' => 2, 'SLAVE' => 2, - 'START' => 2, 'SUPER' => 2, 'SWAPS' => 2, 'TYPES' => 2, 'UNTIL' => 2, - 'VALUE' => 2, - 'ACTION' => 2, 'BACKUP' => 2, 'BINLOG' => 2, 'CIPHER' => 2, 'CLIENT' => 2, - 'COMMIT' => 2, 'ENABLE' => 2, 'ENGINE' => 2, 'ERRORS' => 2, 'ESCAPE' => 2, - 'EVENTS' => 2, 'EXPIRE' => 2, 'EXPORT' => 2, 'FAULTS' => 2, 'FIELDS' => 2, - 'FORMAT' => 2, 'GLOBAL' => 2, 'GRANTS' => 2, 'IMPORT' => 2, 'ISSUER' => 2, - 'LEAVES' => 2, 'MASTER' => 2, 'MEDIUM' => 2, 'MEMORY' => 2, 'MINUTE' => 2, - 'MODIFY' => 2, 'NUMBER' => 2, 'OFFSET' => 2, 'PARSER' => 2, 'PLUGIN' => 2, - 'RELOAD' => 2, 'REMOVE' => 2, 'REPAIR' => 2, 'RESUME' => 2, 'ROLLUP' => 2, - 'SECOND' => 2, 'SERIAL' => 2, 'SERVER' => 2, 'SIGNED' => 2, 'SIMPLE' => 2, - 'SOCKET' => 2, 'SONAME' => 2, 'SOUNDS' => 2, 'SOURCE' => 2, 'STARTS' => 2, - 'STATUS' => 2, 'STRING' => 2, 'TABLES' => 2, - 'AGAINST' => 2, 'ANALYSE' => 2, 'AUTHORS' => 2, 'BOOLEAN' => 2, 'CHANGED' => 2, - 'CHARSET' => 2, 'COLUMNS' => 2, 'COMMENT' => 2, 'COMPACT' => 2, 'CONTEXT' => 2, - 'CURRENT' => 2, 'DEFINER' => 2, 'DISABLE' => 2, 'DISCARD' => 2, 'DYNAMIC' => 2, - 'ENGINES' => 2, 'EXECUTE' => 2, 'GENERAL' => 2, 'HANDLER' => 2, 'INDEXES' => 2, - 'INSTALL' => 2, 'INVOKER' => 2, 'LOGFILE' => 2, 'MIGRATE' => 2, 'NO_WAIT' => 2, - 'OPTIONS' => 2, 'PARTIAL' => 2, 'PLUGINS' => 2, 'POLYGON' => 2, 'PREPARE' => 2, - 'PROFILE' => 2, 'QUARTER' => 2, 'REBUILD' => 2, 'RECOVER' => 2, 'RESTORE' => 2, - 'RETURNS' => 2, 'REVERSE' => 2, 'ROUTINE' => 2, 'SESSION' => 2, 'STORAGE' => 2, - 'SUBJECT' => 2, 'SUSPEND' => 2, 'UNICODE' => 2, 'UNKNOWN' => 2, 'UPGRADE' => 2, - 'USE_FRM' => 2, 'WRAPPER' => 2, - 'CASCADED' => 2, 'CHECKSUM' => 2, 'COALESCE' => 2, 'CONTAINS' => 2, - 'DATAFILE' => 2, 'DATETIME' => 2, 'DUMPFILE' => 2, 'EXCHANGE' => 2, - 'EXTENDED' => 2, 'FUNCTION' => 2, 'GEOMETRY' => 2, 'LANGUAGE' => 2, - 'MAX_ROWS' => 2, 'MAX_SIZE' => 2, 'MIN_ROWS' => 2, 'NATIONAL' => 2, - 'NVARCHAR' => 2, 'ONE_SHOT' => 2, 'PASSWORD' => 2, 'PRESERVE' => 2, - 'PROFILES' => 2, 'REDOFILE' => 2, 'RELAYLOG' => 2, 'ROLLBACK' => 2, - 'SCHEDULE' => 2, 'SECURITY' => 2, 'SHUTDOWN' => 2, 'SNAPSHOT' => 2, - 'SWITCHES' => 2, 'TRIGGERS' => 2, 'TRUNCATE' => 2, 'UNDOFILE' => 2, - 'WARNINGS' => 2, - 'AGGREGATE' => 2, 'ALGORITHM' => 2, 'COLLATION' => 2, 'COMMITTED' => 2, - 'DIRECTORY' => 2, 'DUPLICATE' => 2, 'EXPANSION' => 2, 'IO_THREAD' => 2, - 'ISOLATION' => 2, 'NODEGROUP' => 2, 'PACK_KEYS' => 2, 'READ_ONLY' => 2, - 'REDUNDANT' => 2, 'ROW_COUNT' => 2, 'SAVEPOINT' => 2, 'SQL_CACHE' => 2, - 'TEMPORARY' => 2, 'TEMPTABLE' => 2, 'TIMESTAMP' => 2, 'UNDEFINED' => 2, - 'UNINSTALL' => 2, 'VARIABLES' => 2, - 'COMPLETION' => 2, 'COMPRESSED' => 2, 'CONCURRENT' => 2, 'CONNECTION' => 2, - 'CONSISTENT' => 2, 'DEALLOCATE' => 2, 'GET_FORMAT' => 2, 'IDENTIFIED' => 2, - 'LINESTRING' => 2, 'MASTER_SSL' => 2, 'MULTIPOINT' => 2, 'NDBCLUSTER' => 2, - 'PARTITIONS' => 2, 'PLUGIN_DIR' => 2, 'PRIVILEGES' => 2, 'REORGANIZE' => 2, - 'REPEATABLE' => 2, 'ROW_FORMAT' => 2, 'SQL_THREAD' => 2, 'TABLESPACE' => 2, - 'TABLE_NAME' => 2, - 'COLUMN_NAME' => 2, 'CURSOR_NAME' => 2, 'DIAGNOSTICS' => 2, 'EXTENT_SIZE' => 2, - 'MASTER_HOST' => 2, 'MASTER_PORT' => 2, 'MASTER_USER' => 2, 'MICROSECOND' => 2, - 'MYSQL_ERRNO' => 2, 'PROCESSLIST' => 2, 'REPLICATION' => 2, 'SCHEMA_NAME' => 2, - 'SQL_TSI_DAY' => 2, 'TRANSACTION' => 2, 'UNCOMMITTED' => 2, - 'CATALOG_NAME' => 2, 'CLASS_ORIGIN' => 2, 'CONTRIBUTORS' => 2, - 'DEFAULT_AUTH' => 2, 'DES_KEY_FILE' => 2, 'INITIAL_SIZE' => 2, - 'MASTER_DELAY' => 2, 'MESSAGE_TEXT' => 2, 'MULTIPOLYGON' => 2, - 'OLD_PASSWORD' => 2, 'PARTITIONING' => 2, 'RELAY_THREAD' => 2, - 'SERIALIZABLE' => 2, 'SQL_NO_CACHE' => 2, 'SQL_TSI_HOUR' => 2, - 'SQL_TSI_WEEK' => 2, 'SQL_TSI_YEAR' => 2, 'SUBPARTITION' => 2, - 'TIMESTAMPADD' => 2, - 'COLUMN_FORMAT' => 2, 'INSERT_METHOD' => 2, 'MASTER_SSL_CA' => 2, - 'RELAY_LOG_POS' => 2, 'SQL_TSI_MONTH' => 2, 'SUBPARTITIONS' => 2, - 'TIMESTAMPDIFF' => 2, 'WEIGHT_STRING' => 2, - 'AUTO_INCREMENT' => 2, 'AVG_ROW_LENGTH' => 2, 'KEY_BLOCK_SIZE' => 2, - 'MASTER_LOG_POS' => 2, 'MASTER_SSL_CRL' => 2, 'MASTER_SSL_KEY' => 2, - 'RELAY_LOG_FILE' => 2, 'SQL_TSI_MINUTE' => 2, 'SQL_TSI_SECOND' => 2, - 'TABLE_CHECKSUM' => 2, 'USER_RESOURCES' => 2, - 'AUTOEXTEND_SIZE' => 2, 'CONSTRAINT_NAME' => 2, 'DELAY_KEY_WRITE' => 2, - 'MASTER_LOG_FILE' => 2, 'MASTER_PASSWORD' => 2, 'MASTER_SSL_CERT' => 2, - 'MULTILINESTRING' => 2, 'SQL_AFTER_GTIDS' => 2, 'SQL_TSI_QUARTER' => 2, - 'SUBCLASS_ORIGIN' => 2, - 'MASTER_SERVER_ID' => 2, 'REDO_BUFFER_SIZE' => 2, 'SQL_BEFORE_GTIDS' => 2, - 'STATS_PERSISTENT' => 2, 'UNDO_BUFFER_SIZE' => 2, - 'CONSTRAINT_SCHEMA' => 2, 'IGNORE_SERVER_IDS' => 2, 'MASTER_SSL_CAPATH' => 2, - 'MASTER_SSL_CIPHER' => 2, 'RETURNED_SQLSTATE' => 2, 'SQL_BUFFER_RESULT' => 2, - 'STATS_AUTO_RECALC' => 2, - 'CONSTRAINT_CATALOG' => 2, 'GEOMETRYCOLLECTION' => 2, 'MASTER_RETRY_COUNT' => 2, - 'MASTER_SSL_CRLPATH' => 2, 'SQL_AFTER_MTS_GAPS' => 2, 'STATS_SAMPLE_PAGES' => 2, - 'MASTER_AUTO_POSITION' => 2, 'MASTER_CONNECT_RETRY' => 2, - 'MAX_QUERIES_PER_HOUR' => 2, 'MAX_UPDATES_PER_HOUR' => 2, - 'MAX_USER_CONNECTIONS' => 2, - 'MASTER_HEARTBEAT_PERIOD' => 2, - 'MAX_CONNECTIONS_PER_HOUR' => 2, + 'AS' => 3, 'BY' => 3, 'IF' => 3, 'IN' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, + 'TO' => 3, + 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, + 'FOR' => 3, 'GET' => 3, 'MOD' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, + 'SSL' => 3, 'USE' => 3, 'XOR' => 3, + 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, + 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, + 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, + 'KILL' => 3, 'LEFT' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, + 'LOOP' => 3, 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, + 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, + 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, + 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, + 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'MATCH' => 3, 'ORDER' => 3, + 'OUTER' => 3, 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RIGHT' => 3, + 'RLIKE' => 3, 'TABLE' => 3, 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, + 'WHERE' => 3, 'WHILE' => 3, 'WRITE' => 3, + 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, + 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, + 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'INSERT' => 3, 'LINEAR' => 3, + 'OPTION' => 3, 'REGEXP' => 3, 'RENAME' => 3, 'REPEAT' => 3, 'RETURN' => 3, + 'REVOKE' => 3, 'SCHEMA' => 3, 'SELECT' => 3, 'SIGNAL' => 3, 'UNLOCK' => 3, + 'UPDATE' => 3, 'VALUES' => 3, + 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'CONVERT' => 3, + 'DECLARE' => 3, 'DEFAULT' => 3, 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, + 'FOREIGN' => 3, 'ITERATE' => 3, 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, + 'PRIMARY' => 3, 'RELEASE' => 3, 'REPLACE' => 3, 'REQUIRE' => 3, 'SCHEMAS' => 3, + 'SPATIAL' => 3, 'TRIGGER' => 3, 'VARYING' => 3, + 'CONTINUE' => 3, 'DATABASE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, + 'DISTINCT' => 3, 'ENCLOSED' => 3, 'FULLTEXT' => 3, 'MAXVALUE' => 3, + 'MODIFIES' => 3, 'OPTIMIZE' => 3, 'RESIGNAL' => 3, 'RESTRICT' => 3, + 'SPECIFIC' => 3, 'SQLSTATE' => 3, 'STARTING' => 3, 'TRAILING' => 3, + 'UNSIGNED' => 3, 'UTC_DATE' => 3, 'UTC_TIME' => 3, 'ZEROFILL' => 3, + 'CONDITION' => 3, 'DATABASES' => 3, 'LOCALTIME' => 3, 'MIDDLEINT' => 3, + 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, 'SENSITIVE' => 3, + 'SEPARATOR' => 3, + 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, + 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, + 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, + 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, + 'MASTER_BIND' => 3, + 'CURRENT_DATE' => 3, 'CURRENT_TIME' => 3, 'CURRENT_USER' => 3, + 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, + 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, + 'STRAIGHT_JOIN' => 3, 'UTC_TIMESTAMP' => 3, + 'IO_AFTER_GTIDS' => 3, 'LOCALTIMESTAMP' => 3, 'SQL_BIG_RESULT' => 3, + 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, + 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, + 'CURRENT_TIMESTAMP' => 3, + 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, + 'SQL_CALC_FOUND_ROWS' => 3, + 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - 'NOT NULL' => 4, - 'INDEX KEY' => 4, - 'UNIQUE KEY' => 4, - 'FOREIGN KEY' => 4, 'PRIMARY KEY' => 4, 'PRIMARY KEY' => 4, 'SPATIAL KEY' => 4, - 'FULLTEXT KEY' => 4, 'UNIQUE INDEX' => 4, - 'CHARACTER SET' => 4, 'IF NOT EXISTS' => 4, 'SPATIAL INDEX' => 4, - 'DATA DIRECTORY' => 4, 'FULLTEXT INDEX' => 4, - 'DEFAULT COLLATE' => 4, 'INDEX DIRECTORY' => 4, - 'DEFAULT CHARACTER SET' => 4, + 'NOT NULL' => 5, + 'ON UPDATE' => 5, + 'CHARACTER SET' => 5, 'IF NOT EXISTS' => 5, + 'DATA DIRECTORY' => 5, + 'DEFAULT COLLATE' => 5, 'INDEX DIRECTORY' => 5, + 'DEFAULT CHARACTER SET' => 5, + + 'XML' => 9, + 'DATE' => 9, 'ENUM' => 9, 'TEXT' => 9, 'TIME' => 9, 'YEAR' => 9, + 'ARRAY' => 9, + 'BOOLEAN' => 9, + 'DATETIME' => 9, 'MULTISET' => 9, + 'TIMESTAMP' => 9, + + 'INT' => 11, 'SET' => 11, + 'BLOB' => 11, 'CHAR' => 11, 'REAL' => 11, + 'FLOAT' => 11, + 'BIGINT' => 11, 'BINARY' => 11, 'DOUBLE' => 11, + 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, + 'INTERVAL' => 11, 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, + 'TINYBLOB' => 11, 'TINYTEXT' => 11, + 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, + 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, + + 'BINARY VARYING' => 13, + + 'KEY' => 19, + 'INDEX' => 19, + 'UNIQUE' => 19, + + 'INDEX KEY' => 21, + 'UNIQUE KEY' => 21, + 'FOREIGN KEY' => 21, 'PRIMARY KEY' => 21, 'SPATIAL KEY' => 21, + 'FULLTEXT KEY' => 21, 'UNIQUE INDEX' => 21, + 'SPATIAL INDEX' => 21, + 'FULLTEXT INDEX' => 21, ); } diff --git a/src/Contexts/ContextMySql50700.php b/src/Contexts/ContextMySql50700.php index 5f9014c..d9b7906 100644 --- a/src/Contexts/ContextMySql50700.php +++ b/src/Contexts/ContextMySql50700.php @@ -18,191 +18,194 @@ class ContextMySql50700 extends Context public static $KEYWORDS = array( - 'AS' => 1, 'BY' => 1, 'IF' => 1, 'IN' => 1, 'IS' => 1, - 'ON' => 1, 'OR' => 1, 'TO' => 1, - 'ADD' => 1, 'ALL' => 1, 'AND' => 1, 'ASC' => 1, 'DEC' => 1, - 'DIV' => 1, 'FOR' => 1, 'GET' => 1, 'INT' => 1, 'KEY' => 1, - 'MOD' => 1, 'NOT' => 1, 'OUT' => 1, 'SET' => 1, 'SQL' => 1, - 'SSL' => 1, 'USE' => 1, 'XOR' => 1, - 'BLOB' => 1, 'BOTH' => 1, 'CALL' => 1, 'CASE' => 1, - 'CHAR' => 1, 'DESC' => 1, 'DROP' => 1, 'DUAL' => 1, - 'EACH' => 1, 'ELSE' => 1, 'EXIT' => 1, 'FROM' => 1, - 'INT1' => 1, 'INT2' => 1, 'INT3' => 1, 'INT4' => 1, - 'INT8' => 1, 'INTO' => 1, 'JOIN' => 1, 'KEYS' => 1, - 'KILL' => 1, 'LEFT' => 1, 'LIKE' => 1, 'LOAD' => 1, - 'LOCK' => 1, 'LONG' => 1, 'LOOP' => 1, 'NULL' => 1, - 'READ' => 1, 'REAL' => 1, 'SHOW' => 1, 'THEN' => 1, - 'TRUE' => 1, 'UNDO' => 1, 'WHEN' => 1, 'WITH' => 1, - 'ALTER' => 1, 'CHECK' => 1, 'CROSS' => 1, 'FALSE' => 1, - 'FETCH' => 1, 'FLOAT' => 1, 'FORCE' => 1, 'GRANT' => 1, - 'GROUP' => 1, 'INDEX' => 1, 'INNER' => 1, 'INOUT' => 1, - 'LEAVE' => 1, 'LIMIT' => 1, 'LINES' => 1, 'MATCH' => 1, - 'ORDER' => 1, 'OUTER' => 1, 'PURGE' => 1, 'RANGE' => 1, - 'READS' => 1, 'RIGHT' => 1, 'RLIKE' => 1, 'TABLE' => 1, - 'UNION' => 1, 'USAGE' => 1, 'USING' => 1, 'WHERE' => 1, - 'WHILE' => 1, 'WRITE' => 1, - 'BEFORE' => 1, 'BIGINT' => 1, 'BINARY' => 1, 'CHANGE' => 1, - 'COLUMN' => 1, 'CREATE' => 1, 'CURSOR' => 1, 'DELETE' => 1, - 'DOUBLE' => 1, 'ELSEIF' => 1, 'EXISTS' => 1, 'FLOAT4' => 1, - 'FLOAT8' => 1, 'HAVING' => 1, 'IGNORE' => 1, 'INFILE' => 1, - 'INSERT' => 1, 'LINEAR' => 1, 'OPTION' => 1, 'REGEXP' => 1, - 'RENAME' => 1, 'REPEAT' => 1, 'RETURN' => 1, 'REVOKE' => 1, - 'SCHEMA' => 1, 'SELECT' => 1, 'SIGNAL' => 1, 'STORED' => 1, - 'UNIQUE' => 1, 'UNLOCK' => 1, 'UPDATE' => 1, 'VALUES' => 1, - 'ANALYZE' => 1, 'BETWEEN' => 1, 'CASCADE' => 1, 'COLLATE' => 1, - 'CONVERT' => 1, 'DECIMAL' => 1, 'DECLARE' => 1, 'DEFAULT' => 1, - 'DELAYED' => 1, 'ESCAPED' => 1, 'EXPLAIN' => 1, 'FOREIGN' => 1, - 'INTEGER' => 1, 'ITERATE' => 1, 'LEADING' => 1, 'NATURAL' => 1, - 'NUMERIC' => 1, 'OUTFILE' => 1, 'PRIMARY' => 1, 'RELEASE' => 1, - 'REPLACE' => 1, 'REQUIRE' => 1, 'SCHEMAS' => 1, 'SPATIAL' => 1, - 'TINYINT' => 1, 'TRIGGER' => 1, 'VARCHAR' => 1, 'VARYING' => 1, - 'VIRTUAL' => 1, - 'CONTINUE' => 1, 'DATABASE' => 1, 'DAY_HOUR' => 1, - 'DESCRIBE' => 1, 'DISTINCT' => 1, 'ENCLOSED' => 1, - 'FULLTEXT' => 1, 'INTERVAL' => 1, 'LONGBLOB' => 1, - 'LONGTEXT' => 1, 'MAXVALUE' => 1, 'MODIFIES' => 1, - 'OPTIMIZE' => 1, 'RESIGNAL' => 1, 'RESTRICT' => 1, - 'SMALLINT' => 1, 'SPECIFIC' => 1, 'SQLSTATE' => 1, - 'STARTING' => 1, 'TINYBLOB' => 1, 'TINYTEXT' => 1, - 'TRAILING' => 1, 'UNSIGNED' => 1, 'UTC_DATE' => 1, - 'UTC_TIME' => 1, 'ZEROFILL' => 1, - 'CHARACTER' => 1, 'CONDITION' => 1, 'DATABASES' => 1, - 'GENERATED' => 1, 'LOCALTIME' => 1, 'MEDIUMINT' => 1, - 'MIDDLEINT' => 1, 'PARTITION' => 1, 'PRECISION' => 1, - 'PROCEDURE' => 1, 'SENSITIVE' => 1, 'SEPARATOR' => 1, - 'VARBINARY' => 1, - 'ACCESSIBLE' => 1, 'ASENSITIVE' => 1, 'CONSTRAINT' => 1, - 'DAY_MINUTE' => 1, 'DAY_SECOND' => 1, 'MEDIUMBLOB' => 1, - 'MEDIUMTEXT' => 1, 'OPTIONALLY' => 1, 'READ_WRITE' => 1, - 'REFERENCES' => 1, 'SQLWARNING' => 1, 'TERMINATED' => 1, - 'YEAR_MONTH' => 1, - 'DISTINCTROW' => 1, 'HOUR_MINUTE' => 1, 'HOUR_SECOND' => 1, - 'INSENSITIVE' => 1, 'MASTER_BIND' => 1, - 'CURRENT_DATE' => 1, 'CURRENT_TIME' => 1, 'CURRENT_USER' => 1, - 'LOW_PRIORITY' => 1, 'SQLEXCEPTION' => 1, 'VARCHARACTER' => 1, - 'DETERMINISTIC' => 1, 'HIGH_PRIORITY' => 1, 'MINUTE_SECOND' => 1, - 'STRAIGHT_JOIN' => 1, 'UTC_TIMESTAMP' => 1, - 'IO_AFTER_GTIDS' => 1, 'LOCALTIMESTAMP' => 1, 'SQL_BIG_RESULT' => 1, - 'DAY_MICROSECOND' => 1, 'IO_BEFORE_GTIDS' => 1, 'OPTIMIZER_COSTS' => 1, - 'HOUR_MICROSECOND' => 1, 'SQL_SMALL_RESULT' => 1, - 'CURRENT_TIMESTAMP' => 1, - 'MINUTE_MICROSECOND' => 1, 'NO_WRITE_TO_BINLOG' => 1, - 'SECOND_MICROSECOND' => 1, - 'SQL_CALC_FOUND_ROWS' => 1, - 'MASTER_SSL_VERIFY_SERVER_CERT' => 1, + 'AT' => 1, 'DO' => 1, 'IO' => 1, 'NO' => 1, 'XA' => 1, + 'ANY' => 1, 'AVG' => 1, 'BIT' => 1, 'CPU' => 1, 'DAY' => 1, 'END' => 1, + 'IPC' => 1, 'NDB' => 1, 'NEW' => 1, 'ONE' => 1, 'ROW' => 1, 'XID' => 1, + 'BOOL' => 1, 'BYTE' => 1, 'CODE' => 1, 'CUBE' => 1, 'DATA' => 1, 'DISK' => 1, + 'ENDS' => 1, 'FAST' => 1, 'FILE' => 1, 'FULL' => 1, 'HASH' => 1, 'HELP' => 1, + 'HOST' => 1, 'HOUR' => 1, 'LAST' => 1, 'LESS' => 1, 'LIST' => 1, 'LOGS' => 1, + 'MODE' => 1, 'NAME' => 1, 'NEXT' => 1, 'NONE' => 1, 'ONLY' => 1, 'OPEN' => 1, + 'PAGE' => 1, 'PORT' => 1, 'PREV' => 1, 'ROWS' => 1, 'SLOW' => 1, 'SOME' => 1, + 'STOP' => 1, 'THAN' => 1, 'TYPE' => 1, 'USER' => 1, 'VIEW' => 1, 'WAIT' => 1, + 'WEEK' => 1, 'WORK' => 1, 'X509' => 1, + 'AFTER' => 1, 'ASCII' => 1, 'BEGIN' => 1, 'BLOCK' => 1, 'BTREE' => 1, + 'CACHE' => 1, 'CHAIN' => 1, 'CLOSE' => 1, 'ERROR' => 1, 'EVENT' => 1, + 'EVERY' => 1, 'FIRST' => 1, 'FIXED' => 1, 'FLUSH' => 1, 'FOUND' => 1, + 'HOSTS' => 1, 'LEVEL' => 1, 'LOCAL' => 1, 'LOCKS' => 1, 'MERGE' => 1, + 'MONTH' => 1, 'MUTEX' => 1, 'NAMES' => 1, 'NCHAR' => 1, 'NEVER' => 1, + 'OWNER' => 1, 'PHASE' => 1, 'POINT' => 1, 'PROXY' => 1, 'QUERY' => 1, + 'QUICK' => 1, 'RELAY' => 1, 'RESET' => 1, 'RTREE' => 1, 'SHARE' => 1, + 'SLAVE' => 1, 'START' => 1, 'SUPER' => 1, 'SWAPS' => 1, 'TYPES' => 1, + 'UNTIL' => 1, 'VALUE' => 1, + 'ACTION' => 1, 'ALWAYS' => 1, 'BACKUP' => 1, 'BINLOG' => 1, 'CIPHER' => 1, + 'CLIENT' => 1, 'COMMIT' => 1, 'ENABLE' => 1, 'ENGINE' => 1, 'ERRORS' => 1, + 'ESCAPE' => 1, 'EVENTS' => 1, 'EXPIRE' => 1, 'EXPORT' => 1, 'FAULTS' => 1, + 'FIELDS' => 1, 'FILTER' => 1, 'FORMAT' => 1, 'GLOBAL' => 1, 'GRANTS' => 1, + 'IMPORT' => 1, 'ISSUER' => 1, 'LEAVES' => 1, 'MASTER' => 1, 'MEDIUM' => 1, + 'MEMORY' => 1, 'MINUTE' => 1, 'MODIFY' => 1, 'NUMBER' => 1, 'OFFSET' => 1, + 'PARSER' => 1, 'PLUGIN' => 1, 'RELOAD' => 1, 'REMOVE' => 1, 'REPAIR' => 1, + 'RESUME' => 1, 'ROLLUP' => 1, 'SECOND' => 1, 'SERIAL' => 1, 'SERVER' => 1, + 'SIGNED' => 1, 'SIMPLE' => 1, 'SOCKET' => 1, 'SONAME' => 1, 'SOUNDS' => 1, + 'SOURCE' => 1, 'STARTS' => 1, 'STATUS' => 1, 'STRING' => 1, 'TABLES' => 1, + 'ACCOUNT' => 1, 'AGAINST' => 1, 'ANALYSE' => 1, 'CHANGED' => 1, 'CHANNEL' => 1, + 'CHARSET' => 1, 'COLUMNS' => 1, 'COMMENT' => 1, 'COMPACT' => 1, 'CONTEXT' => 1, + 'CURRENT' => 1, 'DEFINER' => 1, 'DISABLE' => 1, 'DISCARD' => 1, 'DYNAMIC' => 1, + 'ENGINES' => 1, 'EXECUTE' => 1, 'FOLLOWS' => 1, 'GENERAL' => 1, 'HANDLER' => 1, + 'INDEXES' => 1, 'INSTALL' => 1, 'INVOKER' => 1, 'LOGFILE' => 1, 'MIGRATE' => 1, + 'NO_WAIT' => 1, 'OPTIONS' => 1, 'PARTIAL' => 1, 'PLUGINS' => 1, 'POLYGON' => 1, + 'PREPARE' => 1, 'PROFILE' => 1, 'QUARTER' => 1, 'REBUILD' => 1, 'RECOVER' => 1, + 'RESTORE' => 1, 'RETURNS' => 1, 'REVERSE' => 1, 'ROUTINE' => 1, 'SESSION' => 1, + 'STACKED' => 1, 'STORAGE' => 1, 'SUBJECT' => 1, 'SUSPEND' => 1, 'UNICODE' => 1, + 'UNKNOWN' => 1, 'UPGRADE' => 1, 'USE_FRM' => 1, 'WITHOUT' => 1, 'WRAPPER' => 1, + 'CASCADED' => 1, 'CHECKSUM' => 1, 'COALESCE' => 1, 'CONTAINS' => 1, + 'DATAFILE' => 1, 'DUMPFILE' => 1, 'EXCHANGE' => 1, 'EXTENDED' => 1, + 'FUNCTION' => 1, 'GEOMETRY' => 1, 'LANGUAGE' => 1, 'MAX_ROWS' => 1, + 'MAX_SIZE' => 1, 'MIN_ROWS' => 1, 'NATIONAL' => 1, 'NVARCHAR' => 1, + 'PASSWORD' => 1, 'PRECEDES' => 1, 'PRESERVE' => 1, 'PROFILES' => 1, + 'REDOFILE' => 1, 'RELAYLOG' => 1, 'ROLLBACK' => 1, 'SCHEDULE' => 1, + 'SECURITY' => 1, 'SHUTDOWN' => 1, 'SNAPSHOT' => 1, 'SWITCHES' => 1, + 'TRIGGERS' => 1, 'TRUNCATE' => 1, 'UNDOFILE' => 1, 'WARNINGS' => 1, + 'AGGREGATE' => 1, 'ALGORITHM' => 1, 'COLLATION' => 1, 'COMMITTED' => 1, + 'DIRECTORY' => 1, 'DUPLICATE' => 1, 'EXPANSION' => 1, 'IO_THREAD' => 1, + 'ISOLATION' => 1, 'NODEGROUP' => 1, 'PACK_KEYS' => 1, 'READ_ONLY' => 1, + 'REDUNDANT' => 1, 'ROW_COUNT' => 1, 'SAVEPOINT' => 1, 'SQL_CACHE' => 1, + 'TEMPORARY' => 1, 'TEMPTABLE' => 1, 'UNDEFINED' => 1, 'UNINSTALL' => 1, + 'VARIABLES' => 1, + 'COMPLETION' => 1, 'COMPRESSED' => 1, 'CONCURRENT' => 1, 'CONNECTION' => 1, + 'CONSISTENT' => 1, 'DEALLOCATE' => 1, 'GET_FORMAT' => 1, 'IDENTIFIED' => 1, + 'LINESTRING' => 1, 'MASTER_SSL' => 1, 'MULTIPOINT' => 1, 'NDBCLUSTER' => 1, + 'PARTITIONS' => 1, 'PLUGIN_DIR' => 1, 'PRIVILEGES' => 1, 'REORGANIZE' => 1, + 'REPEATABLE' => 1, 'ROW_FORMAT' => 1, 'SQL_THREAD' => 1, 'TABLESPACE' => 1, + 'TABLE_NAME' => 1, 'VALIDATION' => 1, + 'COLUMN_NAME' => 1, 'COMPRESSION' => 1, 'CURSOR_NAME' => 1, 'DIAGNOSTICS' => 1, + 'EXTENT_SIZE' => 1, 'MASTER_HOST' => 1, 'MASTER_PORT' => 1, 'MASTER_USER' => 1, + 'MICROSECOND' => 1, 'MYSQL_ERRNO' => 1, 'NONBLOCKING' => 1, 'PROCESSLIST' => 1, + 'REPLICATION' => 1, 'SCHEMA_NAME' => 1, 'SQL_TSI_DAY' => 1, 'TRANSACTION' => 1, + 'UNCOMMITTED' => 1, + 'CATALOG_NAME' => 1, 'CLASS_ORIGIN' => 1, 'DEFAULT_AUTH' => 1, + 'DES_KEY_FILE' => 1, 'INITIAL_SIZE' => 1, 'MASTER_DELAY' => 1, + 'MESSAGE_TEXT' => 1, 'MULTIPOLYGON' => 1, 'OLD_PASSWORD' => 1, + 'PARTITIONING' => 1, 'RELAY_THREAD' => 1, 'SERIALIZABLE' => 1, + 'SQL_NO_CACHE' => 1, 'SQL_TSI_HOUR' => 1, 'SQL_TSI_WEEK' => 1, + 'SQL_TSI_YEAR' => 1, 'SUBPARTITION' => 1, 'TIMESTAMPADD' => 1, + 'COLUMN_FORMAT' => 1, 'INSERT_METHOD' => 1, 'MASTER_SSL_CA' => 1, + 'RELAY_LOG_POS' => 1, 'SQL_TSI_MONTH' => 1, 'SUBPARTITIONS' => 1, + 'TIMESTAMPDIFF' => 1, 'WEIGHT_STRING' => 1, + 'AUTO_INCREMENT' => 1, 'AVG_ROW_LENGTH' => 1, 'KEY_BLOCK_SIZE' => 1, + 'MASTER_LOG_POS' => 1, 'MASTER_SSL_CRL' => 1, 'MASTER_SSL_KEY' => 1, + 'RELAY_LOG_FILE' => 1, 'SQL_TSI_MINUTE' => 1, 'SQL_TSI_SECOND' => 1, + 'TABLE_CHECKSUM' => 1, 'USER_RESOURCES' => 1, + 'AUTOEXTEND_SIZE' => 1, 'CONSTRAINT_NAME' => 1, 'DELAY_KEY_WRITE' => 1, + 'FILE_BLOCK_SIZE' => 1, 'MASTER_LOG_FILE' => 1, 'MASTER_PASSWORD' => 1, + 'MASTER_SSL_CERT' => 1, 'MULTILINESTRING' => 1, 'PARSE_GCOL_EXPR' => 1, + 'REPLICATE_DO_DB' => 1, 'SQL_AFTER_GTIDS' => 1, 'SQL_TSI_QUARTER' => 1, + 'SUBCLASS_ORIGIN' => 1, + 'MASTER_SERVER_ID' => 1, 'REDO_BUFFER_SIZE' => 1, 'SQL_BEFORE_GTIDS' => 1, + 'STATS_PERSISTENT' => 1, 'UNDO_BUFFER_SIZE' => 1, + 'CONSTRAINT_SCHEMA' => 1, 'GROUP_REPLICATION' => 1, 'IGNORE_SERVER_IDS' => 1, + 'MASTER_SSL_CAPATH' => 1, 'MASTER_SSL_CIPHER' => 1, 'RETURNED_SQLSTATE' => 1, + 'SQL_BUFFER_RESULT' => 1, 'STATS_AUTO_RECALC' => 1, + 'CONSTRAINT_CATALOG' => 1, 'GEOMETRYCOLLECTION' => 1, 'MASTER_RETRY_COUNT' => 1, + 'MASTER_SSL_CRLPATH' => 1, 'MAX_STATEMENT_TIME' => 1, 'REPLICATE_DO_TABLE' => 1, + 'SQL_AFTER_MTS_GAPS' => 1, 'STATS_SAMPLE_PAGES' => 1, + 'REPLICATE_IGNORE_DB' => 1, + 'MASTER_AUTO_POSITION' => 1, 'MASTER_CONNECT_RETRY' => 1, + 'MAX_QUERIES_PER_HOUR' => 1, 'MAX_UPDATES_PER_HOUR' => 1, + 'MAX_USER_CONNECTIONS' => 1, 'REPLICATE_REWRITE_DB' => 1, + 'REPLICATE_IGNORE_TABLE' => 1, + 'MASTER_HEARTBEAT_PERIOD' => 1, 'REPLICATE_WILD_DO_TABLE' => 1, + 'MAX_CONNECTIONS_PER_HOUR' => 1, + 'REPLICATE_WILD_IGNORE_TABLE' => 1, - 'AT' => 2, 'DO' => 2, 'IO' => 2, 'NO' => 2, 'XA' => 2, - 'ANY' => 2, 'AVG' => 2, 'BIT' => 2, 'CPU' => 2, 'DAY' => 2, 'END' => 2, - 'IPC' => 2, 'NDB' => 2, 'NEW' => 2, 'ONE' => 2, 'ROW' => 2, 'XID' => 2, - 'XML' => 2, - 'BOOL' => 2, 'BYTE' => 2, 'CODE' => 2, 'CUBE' => 2, 'DATA' => 2, 'DATE' => 2, - 'DISK' => 2, 'ENDS' => 2, 'ENUM' => 2, 'FAST' => 2, 'FILE' => 2, 'FULL' => 2, - 'HASH' => 2, 'HELP' => 2, 'HOST' => 2, 'HOUR' => 2, 'LAST' => 2, 'LESS' => 2, - 'LIST' => 2, 'LOGS' => 2, 'MODE' => 2, 'NAME' => 2, 'NEXT' => 2, 'NONE' => 2, - 'ONLY' => 2, 'OPEN' => 2, 'PAGE' => 2, 'PORT' => 2, 'PREV' => 2, 'ROWS' => 2, - 'SLOW' => 2, 'SOME' => 2, 'STOP' => 2, 'TEXT' => 2, 'THAN' => 2, 'TIME' => 2, - 'TYPE' => 2, 'USER' => 2, 'VIEW' => 2, 'WAIT' => 2, 'WEEK' => 2, 'WORK' => 2, - 'X509' => 2, 'YEAR' => 2, - 'AFTER' => 2, 'ASCII' => 2, 'BEGIN' => 2, 'BLOCK' => 2, 'BTREE' => 2, - 'CACHE' => 2, 'CHAIN' => 2, 'CLOSE' => 2, 'ERROR' => 2, 'EVENT' => 2, - 'EVERY' => 2, 'FIRST' => 2, 'FIXED' => 2, 'FLUSH' => 2, 'FOUND' => 2, - 'HOSTS' => 2, 'LEVEL' => 2, 'LOCAL' => 2, 'LOCKS' => 2, 'MERGE' => 2, - 'MONTH' => 2, 'MUTEX' => 2, 'NAMES' => 2, 'NCHAR' => 2, 'NEVER' => 2, - 'OWNER' => 2, 'PHASE' => 2, 'POINT' => 2, 'PROXY' => 2, 'QUERY' => 2, - 'QUICK' => 2, 'RELAY' => 2, 'RESET' => 2, 'RTREE' => 2, 'SHARE' => 2, - 'SLAVE' => 2, 'START' => 2, 'SUPER' => 2, 'SWAPS' => 2, 'TYPES' => 2, - 'UNTIL' => 2, 'VALUE' => 2, - 'ACTION' => 2, 'ALWAYS' => 2, 'BACKUP' => 2, 'BINLOG' => 2, 'CIPHER' => 2, - 'CLIENT' => 2, 'COMMIT' => 2, 'ENABLE' => 2, 'ENGINE' => 2, 'ERRORS' => 2, - 'ESCAPE' => 2, 'EVENTS' => 2, 'EXPIRE' => 2, 'EXPORT' => 2, 'FAULTS' => 2, - 'FIELDS' => 2, 'FILTER' => 2, 'FORMAT' => 2, 'GLOBAL' => 2, 'GRANTS' => 2, - 'IMPORT' => 2, 'ISSUER' => 2, 'LEAVES' => 2, 'MASTER' => 2, 'MEDIUM' => 2, - 'MEMORY' => 2, 'MINUTE' => 2, 'MODIFY' => 2, 'NUMBER' => 2, 'OFFSET' => 2, - 'PARSER' => 2, 'PLUGIN' => 2, 'RELOAD' => 2, 'REMOVE' => 2, 'REPAIR' => 2, - 'RESUME' => 2, 'ROLLUP' => 2, 'SECOND' => 2, 'SERIAL' => 2, 'SERVER' => 2, - 'SIGNED' => 2, 'SIMPLE' => 2, 'SOCKET' => 2, 'SONAME' => 2, 'SOUNDS' => 2, - 'SOURCE' => 2, 'STARTS' => 2, 'STATUS' => 2, 'STRING' => 2, 'TABLES' => 2, - 'ACCOUNT' => 2, 'AGAINST' => 2, 'ANALYSE' => 2, 'BOOLEAN' => 2, 'CHANGED' => 2, - 'CHANNEL' => 2, 'CHARSET' => 2, 'COLUMNS' => 2, 'COMMENT' => 2, 'COMPACT' => 2, - 'CONTEXT' => 2, 'CURRENT' => 2, 'DEFINER' => 2, 'DISABLE' => 2, 'DISCARD' => 2, - 'DYNAMIC' => 2, 'ENGINES' => 2, 'EXECUTE' => 2, 'FOLLOWS' => 2, 'GENERAL' => 2, - 'HANDLER' => 2, 'INDEXES' => 2, 'INSTALL' => 2, 'INVOKER' => 2, 'LOGFILE' => 2, - 'MIGRATE' => 2, 'NO_WAIT' => 2, 'OPTIONS' => 2, 'PARTIAL' => 2, 'PLUGINS' => 2, - 'POLYGON' => 2, 'PREPARE' => 2, 'PROFILE' => 2, 'QUARTER' => 2, 'REBUILD' => 2, - 'RECOVER' => 2, 'RESTORE' => 2, 'RETURNS' => 2, 'REVERSE' => 2, 'ROUTINE' => 2, - 'SESSION' => 2, 'STACKED' => 2, 'STORAGE' => 2, 'SUBJECT' => 2, 'SUSPEND' => 2, - 'UNICODE' => 2, 'UNKNOWN' => 2, 'UPGRADE' => 2, 'USE_FRM' => 2, 'WITHOUT' => 2, - 'WRAPPER' => 2, - 'CASCADED' => 2, 'CHECKSUM' => 2, 'COALESCE' => 2, 'CONTAINS' => 2, - 'DATAFILE' => 2, 'DATETIME' => 2, 'DUMPFILE' => 2, 'EXCHANGE' => 2, - 'EXTENDED' => 2, 'FUNCTION' => 2, 'GEOMETRY' => 2, 'LANGUAGE' => 2, - 'MAX_ROWS' => 2, 'MAX_SIZE' => 2, 'MIN_ROWS' => 2, 'NATIONAL' => 2, - 'NVARCHAR' => 2, 'PASSWORD' => 2, 'PRECEDES' => 2, 'PRESERVE' => 2, - 'PROFILES' => 2, 'REDOFILE' => 2, 'RELAYLOG' => 2, 'ROLLBACK' => 2, - 'SCHEDULE' => 2, 'SECURITY' => 2, 'SHUTDOWN' => 2, 'SNAPSHOT' => 2, - 'SWITCHES' => 2, 'TRIGGERS' => 2, 'TRUNCATE' => 2, 'UNDOFILE' => 2, - 'WARNINGS' => 2, - 'AGGREGATE' => 2, 'ALGORITHM' => 2, 'COLLATION' => 2, 'COMMITTED' => 2, - 'DIRECTORY' => 2, 'DUPLICATE' => 2, 'EXPANSION' => 2, 'IO_THREAD' => 2, - 'ISOLATION' => 2, 'NODEGROUP' => 2, 'PACK_KEYS' => 2, 'READ_ONLY' => 2, - 'REDUNDANT' => 2, 'ROW_COUNT' => 2, 'SAVEPOINT' => 2, 'SQL_CACHE' => 2, - 'TEMPORARY' => 2, 'TEMPTABLE' => 2, 'TIMESTAMP' => 2, 'UNDEFINED' => 2, - 'UNINSTALL' => 2, 'VARIABLES' => 2, - 'COMPLETION' => 2, 'COMPRESSED' => 2, 'CONCURRENT' => 2, 'CONNECTION' => 2, - 'CONSISTENT' => 2, 'DEALLOCATE' => 2, 'GET_FORMAT' => 2, 'IDENTIFIED' => 2, - 'LINESTRING' => 2, 'MASTER_SSL' => 2, 'MULTIPOINT' => 2, 'NDBCLUSTER' => 2, - 'PARTITIONS' => 2, 'PLUGIN_DIR' => 2, 'PRIVILEGES' => 2, 'REORGANIZE' => 2, - 'REPEATABLE' => 2, 'ROW_FORMAT' => 2, 'SQL_THREAD' => 2, 'TABLESPACE' => 2, - 'TABLE_NAME' => 2, 'VALIDATION' => 2, - 'COLUMN_NAME' => 2, 'COMPRESSION' => 2, 'CURSOR_NAME' => 2, 'DIAGNOSTICS' => 2, - 'EXTENT_SIZE' => 2, 'MASTER_HOST' => 2, 'MASTER_PORT' => 2, 'MASTER_USER' => 2, - 'MICROSECOND' => 2, 'MYSQL_ERRNO' => 2, 'NONBLOCKING' => 2, 'PROCESSLIST' => 2, - 'REPLICATION' => 2, 'SCHEMA_NAME' => 2, 'SQL_TSI_DAY' => 2, 'TRANSACTION' => 2, - 'UNCOMMITTED' => 2, - 'CATALOG_NAME' => 2, 'CLASS_ORIGIN' => 2, 'DEFAULT_AUTH' => 2, - 'DES_KEY_FILE' => 2, 'INITIAL_SIZE' => 2, 'MASTER_DELAY' => 2, - 'MESSAGE_TEXT' => 2, 'MULTIPOLYGON' => 2, 'OLD_PASSWORD' => 2, - 'PARTITIONING' => 2, 'RELAY_THREAD' => 2, 'SERIALIZABLE' => 2, - 'SQL_NO_CACHE' => 2, 'SQL_TSI_HOUR' => 2, 'SQL_TSI_WEEK' => 2, - 'SQL_TSI_YEAR' => 2, 'SUBPARTITION' => 2, 'TIMESTAMPADD' => 2, - 'COLUMN_FORMAT' => 2, 'INSERT_METHOD' => 2, 'MASTER_SSL_CA' => 2, - 'RELAY_LOG_POS' => 2, 'SQL_TSI_MONTH' => 2, 'SUBPARTITIONS' => 2, - 'TIMESTAMPDIFF' => 2, 'WEIGHT_STRING' => 2, - 'AUTO_INCREMENT' => 2, 'AVG_ROW_LENGTH' => 2, 'KEY_BLOCK_SIZE' => 2, - 'MASTER_LOG_POS' => 2, 'MASTER_SSL_CRL' => 2, 'MASTER_SSL_KEY' => 2, - 'RELAY_LOG_FILE' => 2, 'SQL_TSI_MINUTE' => 2, 'SQL_TSI_SECOND' => 2, - 'TABLE_CHECKSUM' => 2, 'USER_RESOURCES' => 2, - 'AUTOEXTEND_SIZE' => 2, 'CONSTRAINT_NAME' => 2, 'DELAY_KEY_WRITE' => 2, - 'FILE_BLOCK_SIZE' => 2, 'MASTER_LOG_FILE' => 2, 'MASTER_PASSWORD' => 2, - 'MASTER_SSL_CERT' => 2, 'MULTILINESTRING' => 2, 'PARSE_GCOL_EXPR' => 2, - 'REPLICATE_DO_DB' => 2, 'SQL_AFTER_GTIDS' => 2, 'SQL_TSI_QUARTER' => 2, - 'SUBCLASS_ORIGIN' => 2, - 'MASTER_SERVER_ID' => 2, 'REDO_BUFFER_SIZE' => 2, 'SQL_BEFORE_GTIDS' => 2, - 'STATS_PERSISTENT' => 2, 'UNDO_BUFFER_SIZE' => 2, - 'CONSTRAINT_SCHEMA' => 2, 'GROUP_REPLICATION' => 2, 'IGNORE_SERVER_IDS' => 2, - 'MASTER_SSL_CAPATH' => 2, 'MASTER_SSL_CIPHER' => 2, 'RETURNED_SQLSTATE' => 2, - 'SQL_BUFFER_RESULT' => 2, 'STATS_AUTO_RECALC' => 2, - 'CONSTRAINT_CATALOG' => 2, 'GEOMETRYCOLLECTION' => 2, 'MASTER_RETRY_COUNT' => 2, - 'MASTER_SSL_CRLPATH' => 2, 'MAX_STATEMENT_TIME' => 2, 'REPLICATE_DO_TABLE' => 2, - 'SQL_AFTER_MTS_GAPS' => 2, 'STATS_SAMPLE_PAGES' => 2, - 'REPLICATE_IGNORE_DB' => 2, - 'MASTER_AUTO_POSITION' => 2, 'MASTER_CONNECT_RETRY' => 2, - 'MAX_QUERIES_PER_HOUR' => 2, 'MAX_UPDATES_PER_HOUR' => 2, - 'MAX_USER_CONNECTIONS' => 2, 'REPLICATE_REWRITE_DB' => 2, - 'REPLICATE_IGNORE_TABLE' => 2, - 'MASTER_HEARTBEAT_PERIOD' => 2, 'REPLICATE_WILD_DO_TABLE' => 2, - 'MAX_CONNECTIONS_PER_HOUR' => 2, - 'REPLICATE_WILD_IGNORE_TABLE' => 2, + 'AS' => 3, 'BY' => 3, 'IF' => 3, 'IN' => 3, 'IS' => 3, 'ON' => 3, 'OR' => 3, + 'TO' => 3, + 'ADD' => 3, 'ALL' => 3, 'AND' => 3, 'ASC' => 3, 'DEC' => 3, 'DIV' => 3, + 'FOR' => 3, 'GET' => 3, 'MOD' => 3, 'NOT' => 3, 'OUT' => 3, 'SQL' => 3, + 'SSL' => 3, 'USE' => 3, 'XOR' => 3, + 'BOTH' => 3, 'CALL' => 3, 'CASE' => 3, 'DESC' => 3, 'DROP' => 3, 'DUAL' => 3, + 'EACH' => 3, 'ELSE' => 3, 'EXIT' => 3, 'FROM' => 3, 'INT1' => 3, 'INT2' => 3, + 'INT3' => 3, 'INT4' => 3, 'INT8' => 3, 'INTO' => 3, 'JOIN' => 3, 'KEYS' => 3, + 'KILL' => 3, 'LEFT' => 3, 'LIKE' => 3, 'LOAD' => 3, 'LOCK' => 3, 'LONG' => 3, + 'LOOP' => 3, 'NULL' => 3, 'READ' => 3, 'SHOW' => 3, 'THEN' => 3, 'TRUE' => 3, + 'UNDO' => 3, 'WHEN' => 3, 'WITH' => 3, + 'ALTER' => 3, 'CHECK' => 3, 'CROSS' => 3, 'FALSE' => 3, 'FETCH' => 3, + 'FORCE' => 3, 'GRANT' => 3, 'GROUP' => 3, 'INNER' => 3, 'INOUT' => 3, + 'LEAVE' => 3, 'LIMIT' => 3, 'LINES' => 3, 'MATCH' => 3, 'ORDER' => 3, + 'OUTER' => 3, 'PURGE' => 3, 'RANGE' => 3, 'READS' => 3, 'RIGHT' => 3, + 'RLIKE' => 3, 'TABLE' => 3, 'UNION' => 3, 'USAGE' => 3, 'USING' => 3, + 'WHERE' => 3, 'WHILE' => 3, 'WRITE' => 3, + 'BEFORE' => 3, 'CHANGE' => 3, 'COLUMN' => 3, 'CREATE' => 3, 'CURSOR' => 3, + 'DELETE' => 3, 'ELSEIF' => 3, 'EXISTS' => 3, 'FLOAT4' => 3, 'FLOAT8' => 3, + 'HAVING' => 3, 'IGNORE' => 3, 'INFILE' => 3, 'INSERT' => 3, 'LINEAR' => 3, + 'OPTION' => 3, 'REGEXP' => 3, 'RENAME' => 3, 'REPEAT' => 3, 'RETURN' => 3, + 'REVOKE' => 3, 'SCHEMA' => 3, 'SELECT' => 3, 'SIGNAL' => 3, 'STORED' => 3, + 'UNLOCK' => 3, 'UPDATE' => 3, 'VALUES' => 3, + 'ANALYZE' => 3, 'BETWEEN' => 3, 'CASCADE' => 3, 'COLLATE' => 3, 'CONVERT' => 3, + 'DECLARE' => 3, 'DEFAULT' => 3, 'DELAYED' => 3, 'ESCAPED' => 3, 'EXPLAIN' => 3, + 'FOREIGN' => 3, 'ITERATE' => 3, 'LEADING' => 3, 'NATURAL' => 3, 'OUTFILE' => 3, + 'PRIMARY' => 3, 'RELEASE' => 3, 'REPLACE' => 3, 'REQUIRE' => 3, 'SCHEMAS' => 3, + 'SPATIAL' => 3, 'TRIGGER' => 3, 'VARYING' => 3, 'VIRTUAL' => 3, + 'CONTINUE' => 3, 'DATABASE' => 3, 'DAY_HOUR' => 3, 'DESCRIBE' => 3, + 'DISTINCT' => 3, 'ENCLOSED' => 3, 'FULLTEXT' => 3, 'MAXVALUE' => 3, + 'MODIFIES' => 3, 'OPTIMIZE' => 3, 'RESIGNAL' => 3, 'RESTRICT' => 3, + 'SPECIFIC' => 3, 'SQLSTATE' => 3, 'STARTING' => 3, 'TRAILING' => 3, + 'UNSIGNED' => 3, 'UTC_DATE' => 3, 'UTC_TIME' => 3, 'ZEROFILL' => 3, + 'CONDITION' => 3, 'DATABASES' => 3, 'GENERATED' => 3, 'LOCALTIME' => 3, + 'MIDDLEINT' => 3, 'PARTITION' => 3, 'PRECISION' => 3, 'PROCEDURE' => 3, + 'SENSITIVE' => 3, 'SEPARATOR' => 3, + 'ACCESSIBLE' => 3, 'ASENSITIVE' => 3, 'CONSTRAINT' => 3, 'DAY_MINUTE' => 3, + 'DAY_SECOND' => 3, 'OPTIONALLY' => 3, 'READ_WRITE' => 3, 'REFERENCES' => 3, + 'SQLWARNING' => 3, 'TERMINATED' => 3, 'YEAR_MONTH' => 3, + 'DISTINCTROW' => 3, 'HOUR_MINUTE' => 3, 'HOUR_SECOND' => 3, 'INSENSITIVE' => 3, + 'MASTER_BIND' => 3, + 'CURRENT_DATE' => 3, 'CURRENT_TIME' => 3, 'CURRENT_USER' => 3, + 'LOW_PRIORITY' => 3, 'SQLEXCEPTION' => 3, 'VARCHARACTER' => 3, + 'DETERMINISTIC' => 3, 'HIGH_PRIORITY' => 3, 'MINUTE_SECOND' => 3, + 'STRAIGHT_JOIN' => 3, 'UTC_TIMESTAMP' => 3, + 'IO_AFTER_GTIDS' => 3, 'LOCALTIMESTAMP' => 3, 'SQL_BIG_RESULT' => 3, + 'DAY_MICROSECOND' => 3, 'IO_BEFORE_GTIDS' => 3, 'OPTIMIZER_COSTS' => 3, + 'HOUR_MICROSECOND' => 3, 'SQL_SMALL_RESULT' => 3, + 'CURRENT_TIMESTAMP' => 3, + 'MINUTE_MICROSECOND' => 3, 'NO_WRITE_TO_BINLOG' => 3, 'SECOND_MICROSECOND' => 3, + 'SQL_CALC_FOUND_ROWS' => 3, + 'MASTER_SSL_VERIFY_SERVER_CERT' => 3, - 'NOT NULL' => 4, - 'INDEX KEY' => 4, - 'UNIQUE KEY' => 4, - 'FOREIGN KEY' => 4, 'PRIMARY KEY' => 4, 'PRIMARY KEY' => 4, 'SPATIAL KEY' => 4, - 'FULLTEXT KEY' => 4, 'UNIQUE INDEX' => 4, - 'CHARACTER SET' => 4, 'IF NOT EXISTS' => 4, 'SPATIAL INDEX' => 4, - 'DATA DIRECTORY' => 4, 'FULLTEXT INDEX' => 4, - 'DEFAULT COLLATE' => 4, 'INDEX DIRECTORY' => 4, - 'DEFAULT CHARACTER SET' => 4, + 'NOT NULL' => 5, + 'ON UPDATE' => 5, + 'CHARACTER SET' => 5, 'IF NOT EXISTS' => 5, + 'DATA DIRECTORY' => 5, + 'DEFAULT COLLATE' => 5, 'INDEX DIRECTORY' => 5, + 'DEFAULT CHARACTER SET' => 5, + + 'XML' => 9, + 'DATE' => 9, 'ENUM' => 9, 'TEXT' => 9, 'TIME' => 9, 'YEAR' => 9, + 'ARRAY' => 9, + 'BOOLEAN' => 9, + 'DATETIME' => 9, 'MULTISET' => 9, + 'TIMESTAMP' => 9, + + 'INT' => 11, 'SET' => 11, + 'BLOB' => 11, 'CHAR' => 11, 'REAL' => 11, + 'FLOAT' => 11, + 'BIGINT' => 11, 'BINARY' => 11, 'DOUBLE' => 11, + 'DECIMAL' => 11, 'INTEGER' => 11, 'NUMERIC' => 11, 'TINYINT' => 11, 'VARCHAR' => 11, + 'INTERVAL' => 11, 'LONGBLOB' => 11, 'LONGTEXT' => 11, 'SMALLINT' => 11, + 'TINYBLOB' => 11, 'TINYTEXT' => 11, + 'CHARACTER' => 11, 'MEDIUMINT' => 11, 'VARBINARY' => 11, + 'MEDIUMBLOB' => 11, 'MEDIUMTEXT' => 11, + + 'BINARY VARYING' => 13, + + 'KEY' => 19, + 'INDEX' => 19, + 'UNIQUE' => 19, + + 'INDEX KEY' => 21, + 'UNIQUE KEY' => 21, + 'FOREIGN KEY' => 21, 'PRIMARY KEY' => 21, 'SPATIAL KEY' => 21, + 'FULLTEXT KEY' => 21, 'UNIQUE INDEX' => 21, + 'SPATIAL INDEX' => 21, + 'FULLTEXT INDEX' => 21, ); } diff --git a/src/Fragments/DataTypeFragment.php b/src/Fragments/DataTypeFragment.php index 7baefdd..740fbfd 100644 --- a/src/Fragments/DataTypeFragment.php +++ b/src/Fragments/DataTypeFragment.php @@ -88,8 +88,8 @@ class DataTypeFragment extends Fragment } if ($state === 0) { - $ret->name = $token->value; - if (!isset(Context::$DATA_TYPES[$token->value])) { + $ret->name = strtoupper($token->value); + if (($token->type !== Token::TYPE_KEYWORD) || (!($token->flags & Token::FLAG_KEYWORD_DATA_TYPE))) { $parser->error('Unrecognized data type.', $token); } $state = 1; diff --git a/src/Fragments/FieldDefFragment.php b/src/Fragments/FieldDefFragment.php index ba4b6dc..f4a08bd 100644 --- a/src/Fragments/FieldDefFragment.php +++ b/src/Fragments/FieldDefFragment.php @@ -38,6 +38,7 @@ class FieldDefFragment extends Fragment 'UNIQUE KEY' => 4, 'COMMENT' => array(5, 'var'), 'COLUMN_FORMAT' => array(6, 'var'), + 'ON UPDATE' => array(7, 'var'), ); /** @@ -133,16 +134,14 @@ class FieldDefFragment extends Fragment } continue; } elseif ($state === 1) { - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { - if ($token->value === 'CONSTRAINT') { - $state = 4; - } elseif (isset(Context::$KEY_TYPES[$token->value])) { - $expr->type = $token->value; - $state = 5; - } else { - $parser->error('Unexpected keyword.', $token); - break; // TODO: Skip to the end of the query. - } + if (($token->type === Token::TYPE_KEYWORD) && ($token->value === 'CONSTRAINT')) { + $state = 4; + } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_KEY)) { + $expr->type = $token->value; + $state = 5; + } elseif (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { + $parser->error('Unexpected keyword.', $token); + break; // TODO: Skip to the end of the query. } else { $expr->name = $token->value; $state = 2; @@ -154,17 +153,23 @@ class FieldDefFragment extends Fragment $expr->options = OptionsFragment::parse($parser, $list, static::$FIELD_OPTIONS); $state = 6; } elseif ($state === 4) { - if (!isset(Context::$KEY_TYPES[$token->value])) { + if (($token->type !== Token::TYPE_KEYWORD) || (!($token->flags & Token::FLAG_KEYWORD_KEY))) { $expr->name = $token->value; } else { $expr->type = $token->value; $state = 5; } } elseif ($state === 5) { - $expr->indexes = ArrayFragment::parse($parser, $list); - $state = 6; + if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { + $expr->indexes = ArrayFragment::parse($parser, $list); + $state = 6; + } else { + $expr->name = $token->value; + } } elseif ($state === 6) { - $ret[] = $expr; + if (!empty($expr->type)) { + $ret[] = $expr; + } $expr = new FieldDefFragment(); if ($token->value === ',') { $state = 1; @@ -178,7 +183,7 @@ class FieldDefFragment extends Fragment } // Last iteration was not saved. - if (!empty($expr->name)) { + if (!empty($expr->type)) { $ret[] = $expr; } diff --git a/src/Fragments/OptionsFragment.php b/src/Fragments/OptionsFragment.php index f002f5b..dfb4fc9 100644 --- a/src/Fragments/OptionsFragment.php +++ b/src/Fragments/OptionsFragment.php @@ -70,30 +70,24 @@ class OptionsFragment extends Fragment continue; } - if (isset($options[strtoupper($token->value)])) { - $lastOption = $options[strtoupper($token->value)]; - $lastOptionId = is_array($lastOption) ? $lastOption[0] : $lastOption; - - // Checking for option conflicts. - // For example, in `SELECT` statements the keywords `ALL` and `DISTINCT` - // conflict and if used together, they produce an invalid query. - // Usually, tokens can be identified in the array by the option ID, - // but if conflicts occur, a psuedo option ID is used. - // The first pseudo duplicate ID is the maximum value of the real - // options (e.g. if there are 5 options, the first fake ID is 6). - if (isset($ret->options[$lastOptionId])) { - $parser->error('This option conflicts with \'' . $ret->options[$lastOptionId] . '\'.', $token); - $lastOptionId = $lastAssignedId++; - } - } else { - // There is no option to be processed. - if ($lastOption === null) { - break; - } - - // The only keywords that are expected are those which are - // options. - if (($token->type === Token::TYPE_KEYWORD) && ($token->flags & Token::FLAG_KEYWORD_RESERVED)) { + if ($lastOption === null) { + if (isset($options[strtoupper($token->value)])) { + $lastOption = $options[strtoupper($token->value)]; + $lastOptionId = is_array($lastOption) ? $lastOption[0] : $lastOption; + + // Checking for option conflicts. + // For example, in `SELECT` statements the keywords `ALL` and `DISTINCT` + // conflict and if used together, they produce an invalid query. + // Usually, tokens can be identified in the array by the option ID, + // but if conflicts occur, a psuedo option ID is used. + // The first pseudo duplicate ID is the maximum value of the real + // options (e.g. if there are 5 options, the first fake ID is 6). + if (isset($ret->options[$lastOptionId])) { + $parser->error('This option conflicts with \'' . $ret->options[$lastOptionId] . '\'.', $token); + $lastOptionId = $lastAssignedId++; + } + } else { + // There is no option to be processed. break; } } diff --git a/src/Token.php b/src/Token.php index 5a378ca..867976c 100644 --- a/src/Token.php +++ b/src/Token.php @@ -114,9 +114,12 @@ class Token const TYPE_DELIMITER = 9; // Flags that describe the tokens in more detail. - const FLAG_KEYWORD_RESERVED = 1; - const FLAG_KEYWORD_UNRESERVED = 2; + // All keywords must have flag 1 so `Context::isKeyword` method doesn't + // require strict comparison. + const FLAG_KEYWORD_RESERVED = 2; const FLAG_KEYWORD_COMPOSED = 4; + const FLAG_KEYWORD_DATA_TYPE = 8; + const FLAG_KEYWORD_KEY = 16; // Numbers related flags. const FLAG_NUMBER_HEX = 1; @@ -207,10 +210,12 @@ class Token { switch ($this->type) { case Token::TYPE_KEYWORD: - if ($this->flags & Token::FLAG_KEYWORD_RESERVED) { - return strtoupper($this->token); + if (!($this->flags & Token::FLAG_KEYWORD_RESERVED)) { + // Unreserved keywords should stay the way they are because they + // might represent field names. + return $this->token; } - return $this->token; + return strtoupper($this->token); case Token::TYPE_WHITESPACE: return ' '; case Token::TYPE_BOOL: diff --git a/src/Utils/Misc.php b/src/Utils/Misc.php index 2174060..22227a8 100644 --- a/src/Utils/Misc.php +++ b/src/Utils/Misc.php @@ -19,8 +19,8 @@ class Misc /** * Gets a list of all aliases and their original names. * - * @param SelectStatement $tree The tree that was generated after parsing. - * @param string $database The name of the database. + * @param SelectStatement $tree The tree that was generated after parsing. + * @param string $database The name of the database. * * @return array */ diff --git a/src/Utils/Table.php b/src/Utils/Table.php new file mode 100644 index 0000000..7560f9d --- /dev/null +++ b/src/Utils/Table.php @@ -0,0 +1,69 @@ +<?php + +namespace SqlParser\Utils; + +use SqlParser\Lexer; +use SqlParser\Parser; +use SqlParser\Fragments\DataTypeFragment; +use SqlParser\Fragments\ParamDefFragment; +use SqlParser\Statements\CreateStatement; + +/** + * Table utilities. + * + * @category Tables + * @package SqlParser + * @subpackage Utils + * @author Dan Ungureanu <udan1107@gmail.com> + * @license http://opensource.org/licenses/GPL-2.0 GNU Public License + */ +class Table +{ + + public static function getFields(CreateStatement $tree) + { + if (($tree->fields === null) || (!$tree->options->has('TABLE'))) { + return array(); + } + + $ret = array(); + + foreach ($tree->fields as $field) { + + // Skipping keys. + if (is_string($field->type)) { + continue; + } + + $ret[$field->name] = array( + 'type' => $field->type->name, + 'timestamp_not_null' => false, + ); + + if ($field->options) { + + if ($field->type->name === 'TIMESTAMP') { + if ($field->options->has('NOT NULL')) { + $ret[$field->name]['timestamp_not_null'] = true; + } + } + + if (($option = $field->options->has('DEFAULT'))) { + $ret[$field->name]['default_value'] = $option; + if ($option === 'CURRENT_TIMESTAMP') { + $ret[$field->name]['default_current_timestamp'] = true; + } + } + + if (($option = $field->options->has('ON UPDATE'))) { + if ($option === 'CURRENT_TIMESTAMP') { + $ret[$field->name]['on_update_current_timestamp'] = true; + } + } + } + + } + + return $ret; + } +} diff --git a/tests/data/lex.out b/tests/data/lex.out index 90c5483..15dbe20 100644 --- a/tests/data/lex.out +++ b/tests/data/lex.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:9:"SELECT \\";s:3:"len";i:9;s:4:"last";i:9;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:5:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"\";s:5:"value";s:1:"\";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"\";s:5:"value";s:1:"\";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:5;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:2:{i:0;a:4:{i:0;s:21:"Unexpected character.";i:1;s:1:"\";i:2;i:7;i:3;i:0;}i:1;a:4:{i:0;s:21:"Unexpected character.";i:1;s:1:"\";i:2;i:8;i:3;i:0;}}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:9:"SELECT \\";s:3:"len";i:9;s:4:"last";i:9;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:5:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"\";s:5:"value";s:1:"\";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"\";s:5:"value";s:1:"\";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:5;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:2:{i:0;a:4:{i:0;s:21:"Unexpected character.";i:1;s:1:"\";i:2;i:7;i:3;i:0;}i:1;a:4:{i:0;s:21:"Unexpected character.";i:1;s:1:"\";i:2;i:8;i:3;i:0;}}}
\ No newline at end of file diff --git a/tests/data/lexBool.out b/tests/data/lexBool.out index f1e4b14..1ff4f6f 100644 --- a/tests/data/lexBool.out +++ b/tests/data/lexBool.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:18:"SELECT true, FalSe";s:3:"len";i:18;s:4:"last";i:18;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:7:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"true";s:5:"value";b:1;s:4:"type";i:5;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:11;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"FalSe";s:5:"value";b:0;s:4:"type";i:5;s:5:"flags";i:1;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:7;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:18:"SELECT true, FalSe";s:3:"len";i:18;s:4:"last";i:18;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:7:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"true";s:5:"value";b:1;s:4:"type";i:5;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:11;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"FalSe";s:5:"value";b:0;s:4:"type";i:5;s:5:"flags";i:1;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:7;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexComment.out b/tests/data/lexComment.out index 988892d..8c87ffc 100644 --- a/tests/data/lexComment.out +++ b/tests/data/lexComment.out @@ -3,7 +3,7 @@ SELECT /*! STRAIGHT_JOIN */ col1 FROM table1, table2 /* select query */ -- comment -- comment 2";s:3:"len";i:105;s:4:"last";i:106;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"# comment ";s:5:"value";s:10:"# comment -";s:4:"type";i:4;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:10;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:20:"/*! STRAIGHT_JOIN */";s:5:"value";s:20:"/*! STRAIGHT_JOIN */";s:4:"type";i:4;s:5:"flags";i:10;s:8:"position";i:17;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"col1";s:5:"value";s:4:"col1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:38;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:43;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"table1";s:5:"value";s:6:"table1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:54;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:55;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"table2";s:5:"value";s:6:"table2";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:56;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:62;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"/* select query */";s:5:"value";s:18:"/* select query */";s:4:"type";i:4;s:5:"flags";i:2;s:8:"position";i:63;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:4:"type";i:4;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:10;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:20:"/*! STRAIGHT_JOIN */";s:5:"value";s:20:"/*! STRAIGHT_JOIN */";s:4:"type";i:4;s:5:"flags";i:10;s:8:"position";i:17;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"col1";s:5:"value";s:4:"col1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:38;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:43;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"table1";s:5:"value";s:6:"table1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:54;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:55;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"table2";s:5:"value";s:6:"table2";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:56;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:62;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"/* select query */";s:5:"value";s:18:"/* select query */";s:4:"type";i:4;s:5:"flags";i:2;s:8:"position";i:63;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"-- comment ";s:5:"value";s:11:"-- comment ";s:4:"type";i:4;s:5:"flags";i:4;s:8:"position";i:82;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"-- comment 2";s:5:"value";s:12:"-- comment 2";s:4:"type";i:4;s:5:"flags";i:4;s:8:"position";i:93;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexDelimiter.out b/tests/data/lexDelimiter.out index 0988918..52d18bd 100644 --- a/tests/data/lexDelimiter.out +++ b/tests/data/lexDelimiter.out @@ -1,5 +1,5 @@ a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:53:"DELIMITER GO SELECT a,b FROM foo GO SELECT * FROM bar";s:3:"len";i:53;s:4:"last";i:53;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:24:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"DELIMITER";s:5:"value";s:9:"DELIMITER";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:9;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"GO";s:5:"value";s:2:"GO";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:10;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:20;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:21;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"b";s:5:"value";s:1:"b";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:22;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:23;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:24;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:28;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"GO";s:5:"value";s:2:"GO";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:33;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:36;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:43;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:45;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:24;s:3:"idx";i:0;}s:9:"delimiter";s:2:"GO";s:12:"delimiterLen";i:2;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:20;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:21;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"b";s:5:"value";s:1:"b";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:22;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:23;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:24;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:28;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"GO";s:5:"value";s:2:"GO";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:33;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:36;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:43;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:45;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:24;s:3:"idx";i:0;}s:9:"delimiter";s:2:"GO";s:12:"delimiterLen";i:2;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexDelimiter2.out b/tests/data/lexDelimiter2.out index a4e8743..aaa4be3 100644 --- a/tests/data/lexDelimiter2.out +++ b/tests/data/lexDelimiter2.out @@ -1,5 +1,5 @@ a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:56:"DELIMTER // SELECT a,b FROM test // SELECT * FROM bar //";s:3:"len";i:56;s:4:"last";i:56;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:29:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"DELIMTER";s:5:"value";s:8:"DELIMTER";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:9;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:10;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:12;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:18;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:19;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:20;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"b";s:5:"value";s:1:"b";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:21;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:22;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:23;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"test";s:5:"value";s:4:"test";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:28;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:33;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:34;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:36;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:43;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:45;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:53;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:54;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:55;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:29;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:12;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:18;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:19;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:20;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"b";s:5:"value";s:1:"b";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:21;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:22;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:23;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"test";s:5:"value";s:4:"test";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:28;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:33;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:34;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:36;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:43;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:45;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:53;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:54;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"/";s:5:"value";s:1:"/";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:55;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:29;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexKeyword.out b/tests/data/lexKeyword.out index 380747f..715c34f 100644 --- a/tests/data/lexKeyword.out +++ b/tests/data/lexKeyword.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:8:"SELECT 1";s:3:"len";i:8;s:4:"last";i:8;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:4:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:4;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:8:"SELECT 1";s:3:"len";i:8;s:4:"last";i:8;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:4:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:4;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexNumber.out b/tests/data/lexNumber.out index 27c51c6..8c3077c 100644 --- a/tests/data/lexNumber.out +++ b/tests/data/lexNumber.out @@ -1,6 +1,6 @@ a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:121:"SELECT 12, 34, 5.67, 0x89, -10, --11, +12, .15, 0xFFa, 0xfFA, 0XFfA, 1e-10, 1e10, .5e10; -- invalid number -SELECT 12ex10;";s:3:"len";i:121;s:4:"last";i:121;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:50:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"12";s:5:"value";i:12;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:9;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"34";s:5:"value";i:34;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:13;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"5.67";s:5:"value";d:5.6699999999999999;s:4:"type";i:6;s:5:"flags";i:2;s:8:"position";i:15;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"0x89";s:5:"value";i:137;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:21;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:25;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"-10";s:5:"value";i:-10;s:4:"type";i:6;s:5:"flags";i:8;s:8:"position";i:27;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"--11";s:5:"value";i:11;s:4:"type";i:6;s:5:"flags";i:8;s:8:"position";i:32;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:36;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"+12";s:5:"value";i:12;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:38;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:41;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:3:".15";s:5:"value";d:0.14999999999999999;s:4:"type";i:6;s:5:"flags";i:2;s:8:"position";i:43;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:46;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"0xFFa";s:5:"value";i:4090;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:48;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:53;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:54;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"0xfFA";s:5:"value";i:4090;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:55;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:60;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:61;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"0XFfA";s:5:"value";i:4090;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:62;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:67;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:68;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"1e-10";s:5:"value";d:1.0E-10;s:4:"type";i:6;s:5:"flags";i:4;s:8:"position";i:69;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:74;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:75;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"1e10";s:5:"value";d:10000000000;s:4:"type";i:6;s:5:"flags";i:4;s:8:"position";i:76;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:80;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:5:".5e10";s:5:"value";d:5000000000;s:4:"type";i:6;s:5:"flags";i:6;s:8:"position";i:82;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:87;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +SELECT 12ex10;";s:3:"len";i:121;s:4:"last";i:121;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:50:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"12";s:5:"value";i:12;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:9;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"34";s:5:"value";i:34;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:13;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"5.67";s:5:"value";d:5.6699999999999999;s:4:"type";i:6;s:5:"flags";i:2;s:8:"position";i:15;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"0x89";s:5:"value";i:137;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:21;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:25;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"-10";s:5:"value";i:-10;s:4:"type";i:6;s:5:"flags";i:8;s:8:"position";i:27;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"--11";s:5:"value";i:11;s:4:"type";i:6;s:5:"flags";i:8;s:8:"position";i:32;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:36;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"+12";s:5:"value";i:12;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:38;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:41;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:3:".15";s:5:"value";d:0.14999999999999999;s:4:"type";i:6;s:5:"flags";i:2;s:8:"position";i:43;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:46;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"0xFFa";s:5:"value";i:4090;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:48;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:53;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:54;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"0xfFA";s:5:"value";i:4090;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:55;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:60;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:61;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"0XFfA";s:5:"value";i:4090;s:4:"type";i:6;s:5:"flags";i:1;s:8:"position";i:62;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:67;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:68;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"1e-10";s:5:"value";d:1.0E-10;s:4:"type";i:6;s:5:"flags";i:4;s:8:"position";i:69;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:74;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:75;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"1e10";s:5:"value";d:10000000000;s:4:"type";i:6;s:5:"flags";i:4;s:8:"position";i:76;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:80;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:5:".5e10";s:5:"value";d:5000000000;s:4:"type";i:6;s:5:"flags";i:6;s:8:"position";i:82;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:87;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:88;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"-- invalid number ";s:5:"value";s:18:"-- invalid number -";s:4:"type";i:4;s:5:"flags";i:4;s:8:"position";i:89;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:107;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:113;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"12ex10";s:5:"value";s:6:"12ex10";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:114;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:120;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:50;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +";s:4:"type";i:4;s:5:"flags";i:4;s:8:"position";i:89;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:107;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:113;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"12ex10";s:5:"value";s:6:"12ex10";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:114;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:120;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:50;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexOperator.out b/tests/data/lexOperator.out index b737a79..a11b48e 100644 --- a/tests/data/lexOperator.out +++ b/tests/data/lexOperator.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:12:"SELECT 1 + 2";s:3:"len";i:12;s:4:"last";i:12;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:8:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"+";s:5:"value";s:1:"+";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:11;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:8;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:12:"SELECT 1 + 2";s:3:"len";i:12;s:4:"last";i:12;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:8:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"+";s:5:"value";s:1:"+";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:11;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:8;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexString.out b/tests/data/lexString.out index afd7463..00158d3 100644 --- a/tests/data/lexString.out +++ b/tests/data/lexString.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:32:"SELECT 'foo', "bar", "foo\\ bar"";s:3:"len";i:32;s:4:"last";i:32;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:10:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""bar"";s:5:"value";s:3:"bar";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:14;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:11:""foo\\ bar"";s:5:"value";s:9:"foo\\ bar";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:21;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:10;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:32:"SELECT 'foo', "bar", "foo\\ bar"";s:3:"len";i:32;s:4:"last";i:32;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:10:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""bar"";s:5:"value";s:3:"bar";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:14;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:11:""foo\\ bar"";s:5:"value";s:9:"foo\\ bar";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:21;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:10;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexStringErr1.out b/tests/data/lexStringErr1.out index 3b7d33e..9c0fc4e 100644 --- a/tests/data/lexStringErr1.out +++ b/tests/data/lexStringErr1.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:31:"SELECT 'foo', "bar", "foo\\ bar";s:3:"len";i:31;s:4:"last";i:32;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:10:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""bar"";s:5:"value";s:3:"bar";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:14;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:10:""foo\\ bar";s:5:"value";s:8:"foo\\ ba";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:21;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:10;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:28:"Ending quote " was expected.";i:1;s:0:"";i:2;i:31;i:3;i:0;}}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:31:"SELECT 'foo', "bar", "foo\\ bar";s:3:"len";i:31;s:4:"last";i:32;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:10:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""bar"";s:5:"value";s:3:"bar";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:14;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:10:""foo\\ bar";s:5:"value";s:8:"foo\\ ba";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:21;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:10;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:28:"Ending quote " was expected.";i:1;s:0:"";i:2;i:31;i:3;i:0;}}}
\ No newline at end of file diff --git a/tests/data/lexSymbol.out b/tests/data/lexSymbol.out index 850cb59..a3802d4 100644 --- a/tests/data/lexSymbol.out +++ b/tests/data/lexSymbol.out @@ -1,3 +1,3 @@ a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:42:"SET @idx := 1; -SELECT @idx, @`idx`, @'idx'";s:3:"len";i:42;s:4:"last";i:42;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:4;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:2:":=";s:5:"value";s:2:":=";s:4:"type";i:2;s:5:"flags";i:8;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:12;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:13;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:15;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:22;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:26;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@`idx`";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:28;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@'idx'";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:36;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +SELECT @idx, @`idx`, @'idx'";s:3:"len";i:42;s:4:"last";i:42;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:4;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:2:":=";s:5:"value";s:2:":=";s:4:"type";i:2;s:5:"flags";i:8;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:12;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:13;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:15;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:22;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:26;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@`idx`";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:28;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@'idx'";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:36;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexSymbolErr1.out b/tests/data/lexSymbolErr1.out index 5ac1044..d95301e 100644 --- a/tests/data/lexSymbolErr1.out +++ b/tests/data/lexSymbolErr1.out @@ -1,3 +1,3 @@ a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:41:"SET @idx := 1; -SELECT @idx, @`idx`, @'idx";s:3:"len";i:41;s:4:"last";i:42;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:4;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:2:":=";s:5:"value";s:2:":=";s:4:"type";i:2;s:5:"flags";i:8;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:12;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:13;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:15;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:22;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:26;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@`idx`";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:28;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"@'idx";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:36;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:28:"Ending quote ' was expected.";i:1;s:0:"";i:2;i:41;i:3;i:0;}}}
\ No newline at end of file +SELECT @idx, @`idx`, @'idx";s:3:"len";i:41;s:4:"last";i:42;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:4;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:2:":=";s:5:"value";s:2:":=";s:4:"type";i:2;s:5:"flags";i:8;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:12;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:13;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:15;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:22;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:26;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@`idx`";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:28;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"@'idx";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:36;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:28:"Ending quote ' was expected.";i:1;s:0:"";i:2;i:41;i:3;i:0;}}}
\ No newline at end of file diff --git a/tests/data/lexSymbolErr2.out b/tests/data/lexSymbolErr2.out index 9c9bb49..dc06108 100644 --- a/tests/data/lexSymbolErr2.out +++ b/tests/data/lexSymbolErr2.out @@ -1,3 +1,3 @@ a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:38:"SET @idx := 1; -SELECT @idx, @`idx`, @ ";s:3:"len";i:38;s:4:"last";i:38;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:4;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:2:":=";s:5:"value";s:2:":=";s:4:"type";i:2;s:5:"flags";i:8;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:12;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:13;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:15;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:22;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:26;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@`idx`";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:28;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"@";s:5:"value";s:0:"";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:36;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:27:"Variable name was expected.";i:1;s:1:" ";i:2;i:37;i:3;i:0;}}}
\ No newline at end of file +SELECT @idx, @`idx`, @ ";s:3:"len";i:38;s:4:"last";i:38;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:19:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:4;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:2:":=";s:5:"value";s:2:":=";s:4:"type";i:2;s:5:"flags";i:8;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:12;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:13;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:15;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:22;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:26;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"@`idx`";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:28;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"@";s:5:"value";s:0:"";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:36;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:19;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:27:"Variable name was expected.";i:1;s:1:" ";i:2;i:37;i:3;i:0;}}}
\ No newline at end of file diff --git a/tests/data/lexSymbolErr3.out b/tests/data/lexSymbolErr3.out index 2d64c15..ca4eead 100644 --- a/tests/data/lexSymbolErr3.out +++ b/tests/data/lexSymbolErr3.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:11:"SELECT `idx";s:3:"len";i:11;s:4:"last";i:12;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:4:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`idx";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:4;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:28:"Ending quote ` was expected.";i:1;s:0:"";i:2;i:11;i:3;i:0;}}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:11:"SELECT `idx";s:3:"len";i:11;s:4:"last";i:12;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:4:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`idx";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:4;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:1:{i:0;a:4:{i:0;s:28:"Ending quote ` was expected.";i:1;s:0:"";i:2;i:11;i:3;i:0;}}}
\ No newline at end of file diff --git a/tests/data/lexSymbolUser.out b/tests/data/lexSymbolUser.out index 1801133..4861334 100644 --- a/tests/data/lexSymbolUser.out +++ b/tests/data/lexSymbolUser.out @@ -1 +1 @@ -a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:55:"CREATE USER 'user'@'hostname' IDENTIFIED BY 'password';";s:3:"len";i:55;s:4:"last";i:55;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:13:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"USER";s:5:"value";s:4:"USER";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:17:"'user'@'hostname'";s:5:"value";s:13:"user@hostname";s:4:"type";i:8;s:5:"flags";i:4;s:8:"position";i:12;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"IDENTIFIED";s:5:"value";s:10:"IDENTIFIED";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:30;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:41;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"'password'";s:5:"value";s:8:"password";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:44;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:54;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:13;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict";b:0;s:3:"str";s:55:"CREATE USER 'user'@'hostname' IDENTIFIED BY 'password';";s:3:"len";i:55;s:4:"last";i:55;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:13:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"USER";s:5:"value";s:4:"USER";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:11;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:17:"'user'@'hostname'";s:5:"value";s:13:"user@hostname";s:4:"type";i:8;s:5:"flags";i:4;s:8:"position";i:12;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"IDENTIFIED";s:5:"value";s:10:"IDENTIFIED";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:30;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:41;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"'password'";s:5:"value";s:8:"password";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:44;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:54;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:13;s:3:"idx";i:0;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/lexWhitespace.out b/tests/data/lexWhitespace.out index 21edb8a..0bac6e3 100644 --- a/tests/data/lexWhitespace.out +++ b/tests/data/lexWhitespace.out @@ -10,7 +10,7 @@ SELECT ";s:3:"len";i:79;s:4:"last";i:79;s:6:"tokens";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:6:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:3:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:9:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:3;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:9:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:9;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:22:"'w h i t e s p a c e'";s:5:"value";s:20:"w h i t e s p a c e";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:18;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:39:" diff --git a/tests/data/parse.out b/tests/data/parse.out index dd0ef1f..b81a1f0 100644 --- a/tests/data/parse.out +++ b/tests/data/parse.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:5:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:5;s:3:"idx";i:5;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:1:"1";s:5:"alias";N;}}s:4:"from";N;s:9:"partition";N;s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:2;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:5:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:5;s:3:"idx";i:5;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:1:"1";s:5:"alias";N;}}s:4:"from";N;s:9:"partition";N;s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:2;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseArrayErr1.out b/tests/data/parseArrayErr1.out index 72e212a..42281d8 100644 --- a/tests/data/parseArrayErr1.out +++ b/tests/data/parseArrayErr1.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:17:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:17;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:18;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:28;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:31;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:33;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:36;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:17;s:3:"idx";i:17;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:2:"* ";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:3:"foo";s:6:"column";N;s:4:"expr";s:3:"foo";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:0:{}s:3:"raw";a:0:{}}s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:14;}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:29:"An open bracket was expected.";i:1;r:65;i:2;i:0;}}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:17:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:17;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:18;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:28;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:31;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:33;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:36;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:17;s:3:"idx";i:17;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:2:"* ";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:3:"foo";s:6:"column";N;s:4:"expr";s:3:"foo";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:0:{}s:3:"raw";a:0:{}}s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:14;}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:29:"An open bracket was expected.";i:1;r:65;i:2;i:0;}}}
\ No newline at end of file diff --git a/tests/data/parseArrayErr2.out b/tests/data/parseArrayErr2.out index 892e522..9f86111 100644 --- a/tests/data/parseArrayErr2.out +++ b/tests/data/parseArrayErr2.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:25:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:17;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:18;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:28;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:33;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:36;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:38;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:44;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:46;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:">";s:5:"value";s:1:">";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:47;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:48;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"0";s:5:"value";i:0;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:49;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:50;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:25;s:3:"idx";i:25;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:2:"* ";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:3:"foo";s:6:"column";N;s:4:"expr";s:3:"foo";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:1:{i:0;s:3:"bar";}s:3:"raw";a:1:{i:0;s:3:"bar";}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:4:"id>0";}}s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:22;}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:32:"Symbols ')' or ',' were expected";i:1;r:83;i:2;i:0;}}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:25:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:17;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:18;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:28;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:33;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:36;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:38;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:44;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:46;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:">";s:5:"value";s:1:">";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:47;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:48;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"0";s:5:"value";i:0;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:49;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:50;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:25;s:3:"idx";i:25;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:2:"* ";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:3:"foo";s:6:"column";N;s:4:"expr";s:3:"foo";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:1:{i:0;s:3:"bar";}s:3:"raw";a:1:{i:0;s:3:"bar";}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:4:"id>0";}}s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:22;}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:32:"Symbols ')' or ',' were expected";i:1;r:83;i:2;i:0;}}}
\ No newline at end of file diff --git a/tests/data/parseArrayErr3.out b/tests/data/parseArrayErr3.out index 797bf50..3982ff3 100644 --- a/tests/data/parseArrayErr3.out +++ b/tests/data/parseArrayErr3.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:17:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:17;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:18;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:28;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:32;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:33;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:34;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:17;s:3:"idx";i:17;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:2:"* ";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:3:"foo";s:6:"column";N;s:4:"expr";s:3:"foo";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:2:{i:0;s:3:"bar";i:1;s:3:"baz";}s:3:"raw";a:2:{i:0;s:3:"bar";i:1;s:3:"baz";}}s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:15;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:17:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"*";s:5:"value";s:1:"*";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:17;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:18;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:28;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:32;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:33;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:34;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:17;s:3:"idx";i:17;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:2:"* ";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:3:"foo";s:6:"column";N;s:4:"expr";s:3:"foo";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:2:{i:0;s:3:"bar";i:1;s:3:"baz";}s:3:"raw";a:2:{i:0;s:3:"bar";i:1;s:3:"baz";}}s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:15;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseCall.out b/tests/data/parseCall.out index 96c95a7..c94fbd5 100644 --- a/tests/data/parseCall.out +++ b/tests/data/parseCall.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:7:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"CALL";s:5:"value";s:4:"CALL";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:4;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:5;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:10;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:7;s:3:"idx";i:7;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:34:"SqlParser\Statements\CallStatement":3:{s:4:"call";O:31:"SqlParser\Fragments\CallKeyword":2:{s:4:"name";s:3:"foo";s:10:"parameters";a:0:{}}s:5:"first";N;s:4:"last";i:4;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:7:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"CALL";s:5:"value";s:4:"CALL";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:4;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:5;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:10;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:7;s:3:"idx";i:7;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:34:"SqlParser\Statements\CallStatement":3:{s:4:"call";O:31:"SqlParser\Fragments\CallKeyword":2:{s:4:"name";s:3:"foo";s:10:"parameters";a:0:{}}s:5:"first";N;s:4:"last";i:4;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseCall2.out b/tests/data/parseCall2.out index 7d3be93..744a584 100644 --- a/tests/data/parseCall2.out +++ b/tests/data/parseCall2.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:11:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"CALL";s:5:"value";s:4:"CALL";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:4;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:5;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@bar";s:5:"value";s:3:"bar";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@baz";s:5:"value";s:3:"baz";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:15;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:20;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:11;s:3:"idx";i:11;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:34:"SqlParser\Statements\CallStatement":3:{s:4:"call";O:31:"SqlParser\Fragments\CallKeyword":2:{s:4:"name";s:3:"foo";s:10:"parameters";a:2:{i:0;s:3:"bar";i:1;s:3:"baz";}}s:5:"first";N;s:4:"last";i:8;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:11:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"CALL";s:5:"value";s:4:"CALL";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:4;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:5;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@bar";s:5:"value";s:3:"bar";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:9;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:13;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@baz";s:5:"value";s:3:"baz";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:15;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:19;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:20;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:11;s:3:"idx";i:11;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:34:"SqlParser\Statements\CallStatement":3:{s:4:"call";O:31:"SqlParser\Fragments\CallKeyword":2:{s:4:"name";s:3:"foo";s:10:"parameters";a:2:{i:0;s:3:"bar";i:1;s:3:"baz";}}s:5:"first";N;s:4:"last";i:8;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseCreateFunction.out b/tests/data/parseCreateFunction.out index c1a321c..9f1f7cc 100644 --- a/tests/data/parseCreateFunction.out +++ b/tests/data/parseCreateFunction.out @@ -1,6 +1,6 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:56:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"FUNCTION";s:5:"value";s:8:"FUNCTION";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:15;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"F_TEST";s:5:"value";s:6:"F_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:16;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:22;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:23;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:27;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"RETURNS";s:5:"value";s:7:"RETURNS";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:32;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:39;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:40;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:48;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DECLARE";s:5:"value";s:7:"DECLARE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:58;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:65;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:66;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:74;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:75;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:82;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DEFAULT";s:5:"value";s:7:"DEFAULT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:83;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:90;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"""";s:5:"value";s:0:"";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:91;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:93;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:94;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:99;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:105;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:106;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:114;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:115;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:119;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:120;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:128;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:129;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:133;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:134;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:140;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:145;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:146;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:148;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:149;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:150;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:151;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:154;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:155;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RETURN";s:5:"value";s:6:"RETURN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:160;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:166;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:167;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:175;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:176;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:177;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:56;s:3:"idx";i:56;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":10:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"F_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:8:"FUNCTION";}}s:10:"parameters";a:1:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";N;s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:40:{i:0;r:95;i:1;r:101;i:2;r:107;i:3;r:113;i:4;r:119;i:5;r:125;i:6;r:131;i:7;r:137;i:8;r:143;i:9;r:149;i:10;r:155;i:11;r:161;i:12;r:167;i:13;r:173;i:14;r:179;i:15;r:185;i:16;r:191;i:17;r:197;i:18;r:203;i:19;r:209;i:20;r:215;i:21;r:221;i:22;r:227;i:23;r:233;i:24;r:239;i:25;r:245;i:26;r:251;i:27;r:257;i:28;r:263;i:29;r:269;i:30;r:275;i:31;r:281;i:32;r:287;i:33;r:293;i:34;r:299;i:35;r:305;i:36;r:311;i:37;r:317;i:38;r:323;i:39;r:329;}s:5:"first";N;s:4:"last";i:54;s:6:"return";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:56:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"FUNCTION";s:5:"value";s:8:"FUNCTION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:15;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"F_TEST";s:5:"value";s:6:"F_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:16;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:22;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:23;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:27;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"RETURNS";s:5:"value";s:7:"RETURNS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:32;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:39;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:40;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:48;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DECLARE";s:5:"value";s:7:"DECLARE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:58;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:65;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:66;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:74;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:75;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:82;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DEFAULT";s:5:"value";s:7:"DEFAULT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:83;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:90;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"""";s:5:"value";s:0:"";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:91;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:93;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:94;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:99;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:105;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:106;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:114;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:115;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:119;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:120;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:128;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:129;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:133;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:134;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:140;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:145;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:146;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:148;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:149;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:150;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:151;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:154;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:155;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RETURN";s:5:"value";s:6:"RETURN";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:160;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:166;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:167;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:175;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:176;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:177;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:56;s:3:"idx";i:56;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":10:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"F_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:8:"FUNCTION";}}s:10:"parameters";a:1:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";N;s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:40:{i:0;r:95;i:1;r:101;i:2;r:107;i:3;r:113;i:4;r:119;i:5;r:125;i:6;r:131;i:7;r:137;i:8;r:143;i:9;r:149;i:10;r:155;i:11;r:161;i:12;r:167;i:13;r:173;i:14;r:179;i:15;r:185;i:16;r:191;i:17;r:197;i:18;r:203;i:19;r:209;i:20;r:215;i:21;r:221;i:22;r:227;i:23;r:233;i:24;r:239;i:25;r:245;i:26;r:251;i:27;r:257;i:28;r:263;i:29;r:269;i:30;r:275;i:31;r:281;i:32;r:287;i:33;r:293;i:34;r:299;i:35;r:305;i:36;r:311;i:37;r:317;i:38;r:323;i:39;r:329;}s:5:"first";N;s:4:"last";i:54;s:6:"return";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseCreateFunctionErr1.out b/tests/data/parseCreateFunctionErr1.out index 53219fc..ade4329 100644 --- a/tests/data/parseCreateFunctionErr1.out +++ b/tests/data/parseCreateFunctionErr1.out @@ -1,6 +1,6 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:52:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"FUNCTION";s:5:"value";s:8:"FUNCTION";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:15;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"F_TEST";s:5:"value";s:6:"F_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:16;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:22;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:23;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:27;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:32;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DECLARE";s:5:"value";s:7:"DECLARE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:42;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:59;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:66;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DEFAULT";s:5:"value";s:7:"DEFAULT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:67;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:74;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"""";s:5:"value";s:0:"";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:75;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:77;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:78;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:83;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:89;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:90;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:98;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:99;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:103;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:104;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:112;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:113;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:117;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:118;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:123;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:124;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:129;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:130;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:132;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:133;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:134;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:135;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:138;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RETURN";s:5:"value";s:6:"RETURN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:144;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:150;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:151;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:159;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:160;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:161;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:52;s:3:"idx";i:52;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":9:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"F_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:8:"FUNCTION";}}s:10:"parameters";a:1:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";N;s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:38:{i:0;r:83;i:1;r:89;i:2;r:95;i:3;r:101;i:4;r:107;i:5;r:113;i:6;r:119;i:7;r:125;i:8;r:131;i:9;r:137;i:10;r:143;i:11;r:149;i:12;r:155;i:13;r:161;i:14;r:167;i:15;r:173;i:16;r:179;i:17;r:185;i:18;r:191;i:19;r:197;i:20;r:203;i:21;r:209;i:22;r:215;i:23;r:221;i:24;r:227;i:25;r:233;i:26;r:239;i:27;r:245;i:28;r:251;i:29;r:257;i:30;r:263;i:31;r:269;i:32;r:275;i:33;r:281;i:34;r:287;i:35;r:293;i:36;r:299;i:37;r:305;}s:5:"first";N;s:4:"last";i:50;s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:31:"'RETURNS' keyword was expected.";i:1;r:71;i:2;i:0;}}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:52:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"FUNCTION";s:5:"value";s:8:"FUNCTION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:15;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"F_TEST";s:5:"value";s:6:"F_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:16;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:22;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:23;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:27;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:32;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DECLARE";s:5:"value";s:7:"DECLARE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:42;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:59;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:66;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DEFAULT";s:5:"value";s:7:"DEFAULT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:67;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:74;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"""";s:5:"value";s:0:"";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:75;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:77;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:78;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:83;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:89;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:90;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:98;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:99;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:103;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:104;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:112;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:113;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:117;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:118;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:123;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:124;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:129;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:130;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:132;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:133;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:134;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:135;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:138;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RETURN";s:5:"value";s:6:"RETURN";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:144;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:150;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:151;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:159;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:160;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:161;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:52;s:3:"idx";i:52;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":9:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"F_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:8:"FUNCTION";}}s:10:"parameters";a:1:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";N;s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:38:{i:0;r:83;i:1;r:89;i:2;r:95;i:3;r:101;i:4;r:107;i:5;r:113;i:6;r:119;i:7;r:125;i:8;r:131;i:9;r:137;i:10;r:143;i:11;r:149;i:12;r:155;i:13;r:161;i:14;r:167;i:15;r:173;i:16;r:179;i:17;r:185;i:18;r:191;i:19;r:197;i:20;r:203;i:21;r:209;i:22;r:215;i:23;r:221;i:24;r:227;i:25;r:233;i:26;r:239;i:27;r:245;i:28;r:251;i:29;r:257;i:30;r:263;i:31;r:269;i:32;r:275;i:33;r:281;i:34;r:287;i:35;r:293;i:36;r:299;i:37;r:305;}s:5:"first";N;s:4:"last";i:50;s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:31:"'RETURNS' keyword was expected.";i:1;r:71;i:2;i:0;}}}
\ No newline at end of file diff --git a/tests/data/parseCreateProcedure.out b/tests/data/parseCreateProcedure.out index 42e6869..ed7792e 100644 --- a/tests/data/parseCreateProcedure.out +++ b/tests/data/parseCreateProcedure.out @@ -1,4 +1,4 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:32:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PROCEDURE";s:5:"value";s:9:"PROCEDURE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"P_TEST";s:5:"value";s:6:"P_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:23;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:24;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:28;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:31;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:33;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:38;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:43;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:59;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:63;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:64;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:69;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:70;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:75;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:76;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:78;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:79;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:80;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:81;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:84;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:85;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:86;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:32;s:3:"idx";i:32;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":9:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"P_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:9:"PROCEDURE";}}s:10:"parameters";a:1:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";N;s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:20:{i:0;r:71;i:1;r:77;i:2;r:83;i:3;r:89;i:4;r:95;i:5;r:101;i:6;r:107;i:7;r:113;i:8;r:119;i:9;r:125;i:10;r:131;i:11;r:137;i:12;r:143;i:13;r:149;i:14;r:155;i:15;r:161;i:16;r:167;i:17;r:173;i:18;r:179;i:19;r:185;}s:5:"first";N;s:4:"last";i:30;s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:32:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PROCEDURE";s:5:"value";s:9:"PROCEDURE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"P_TEST";s:5:"value";s:6:"P_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:23;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:24;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:27;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:28;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:31;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:33;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:38;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:43;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:59;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:63;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:64;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:69;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:70;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:75;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:76;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:78;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:79;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:80;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:81;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:84;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:85;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:86;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:32;s:3:"idx";i:32;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":9:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"P_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:9:"PROCEDURE";}}s:10:"parameters";a:1:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";N;s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:20:{i:0;r:71;i:1;r:77;i:2;r:83;i:3;r:89;i:4;r:95;i:5;r:101;i:6;r:107;i:7;r:113;i:8;r:119;i:9;r:125;i:10;r:131;i:11;r:137;i:12;r:143;i:13;r:149;i:14;r:155;i:15;r:161;i:16;r:167;i:17;r:173;i:18;r:179;i:19;r:185;}s:5:"first";N;s:4:"last";i:30;s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseCreateProcedure2.out b/tests/data/parseCreateProcedure2.out index f1ed57c..d2ed0ac 100644 --- a/tests/data/parseCreateProcedure2.out +++ b/tests/data/parseCreateProcedure2.out @@ -1,4 +1,4 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:41:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PROCEDURE";s:5:"value";s:9:"PROCEDURE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"P_TEST";s:5:"value";s:6:"P_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:23;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"IN";s:5:"value";s:2:"IN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:24;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:27;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:30;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:31;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"IN";s:5:"value";s:2:"IN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:36;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:38;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"unused";s:5:"value";s:6:"unused";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:39;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:45;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:46;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:53;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:54;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:55;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:60;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:65;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:71;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:72;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:80;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:81;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:85;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:86;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:91;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:92;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:97;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:98;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:100;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:101;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:102;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:103;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:106;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:107;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:108;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:41;s:3:"idx";i:41;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":9:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"P_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:9:"PROCEDURE";}}s:10:"parameters";a:2:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";s:2:"IN";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}i:1;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:6:"unused";s:5:"inOut";s:2:"IN";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:20:{i:0;r:125;i:1;r:131;i:2;r:137;i:3;r:143;i:4;r:149;i:5;r:155;i:6;r:161;i:7;r:167;i:8;r:173;i:9;r:179;i:10;r:185;i:11;r:191;i:12;r:197;i:13;r:203;i:14;r:209;i:15;r:215;i:16;r:221;i:17;r:227;i:18;r:233;i:19;r:239;}s:5:"first";N;s:4:"last";i:39;s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:41:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PROCEDURE";s:5:"value";s:9:"PROCEDURE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"P_TEST";s:5:"value";s:6:"P_TEST";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:23;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"IN";s:5:"value";s:2:"IN";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:24;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:27;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:30;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:31;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"IN";s:5:"value";s:2:"IN";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:36;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:38;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"unused";s:5:"value";s:6:"unused";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:39;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:45;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:46;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:53;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:54;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"BEGIN";s:5:"value";s:5:"BEGIN";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:55;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:60;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:65;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:71;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:72;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:80;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:81;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:85;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:86;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:91;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:92;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:97;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"ID";s:5:"value";s:2:"ID";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:98;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:100;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:101;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:102;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"uid";s:5:"value";s:3:"uid";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:103;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:106;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:107;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"END";s:5:"value";s:3:"END";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:108;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:41;s:3:"idx";i:41;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":9:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:6:"P_TEST";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:9:"PROCEDURE";}}s:10:"parameters";a:2:{i:0;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:3:"uid";s:5:"inOut";s:2:"IN";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}i:1;O:36:"SqlParser\Fragments\ParamDefFragment":3:{s:4:"name";s:6:"unused";s:5:"inOut";s:2:"IN";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:12:"tableOptions";N;s:6:"fields";N;s:4:"body";a:20:{i:0;r:125;i:1;r:131;i:2;r:137;i:3;r:143;i:4;r:149;i:5;r:155;i:6;r:161;i:7;r:167;i:8;r:173;i:9;r:179;i:10;r:185;i:11;r:191;i:12;r:197;i:13;r:203;i:14;r:209;i:15;r:215;i:16;r:221;i:17;r:227;i:18;r:233;i:19;r:239;}s:5:"first";N;s:4:"last";i:39;s:11:"funcOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseCreateTable.out b/tests/data/parseCreateTable.out index b7ae4a5..500bfb3 100644 --- a/tests/data/parseCreateTable.out +++ b/tests/data/parseCreateTable.out @@ -1,7 +1,7 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:65:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"TABLE";s:5:"value";s:5:"TABLE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:13:"IF NOT EXISTS";s:5:"value";s:13:"IF NOT EXISTS";s:4:"type";i:1;s:5:"flags";i:4;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:27;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:33;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:39;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:44;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"NOT NULL";s:5:"value";s:8:"NOT NULL";s:4:"type";i:1;s:5:"flags";i:4;s:8:"position";i:48;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:14:"AUTO_INCREMENT";s:5:"value";s:14:"AUTO_INCREMENT";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:57;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:71;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:72;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:77;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:85;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:86;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:93;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"64";s:5:"value";i:64;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:94;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:96;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:97;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"NULL";s:5:"value";s:4:"NULL";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:98;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:102;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:103;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`password`";s:5:"value";s:8:"password";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:108;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:118;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:119;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:126;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"256";s:5:"value";i:256;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:127;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:130;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:131;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DEFAULT";s:5:"value";s:7:"DEFAULT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:132;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"'123456'";s:5:"value";s:6:"123456";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:140;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:148;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:149;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"CONSTRAINT";s:5:"value";s:10:"CONSTRAINT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:154;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:164;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"pk_id";s:5:"value";s:5:"pk_id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:165;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:170;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"PRIMARY KEY";s:5:"value";s:11:"PRIMARY KEY";s:4:"type";i:1;s:5:"flags";i:4;s:8:"position";i:171;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:182;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:183;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:184;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:188;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:189;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:190;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"UNIQUE";s:5:"value";s:6:"UNIQUE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:195;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:201;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:202;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:203;}i:56;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:211;}i:57;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:212;}i:58;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:213;}i:59;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:214;}i:60;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"ENGINE";s:5:"value";s:6:"ENGINE";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:215;}i:61;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:221;}i:62;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:222;}i:63;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:228;}i:64;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:65;s:3:"idx";i:65;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":8:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:5:"users";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:5:"TABLE";i:3;s:13:"IF NOT EXISTS";}}s:10:"parameters";N;s:12:"tableOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;a:2:{s:4:"name";s:6:"ENGINE";s:5:"value";s:6:"InnoDB";}}}s:6:"fields";a:5:{i:0;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:2:"id";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:7:"indexes";N;s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:8:"NOT NULL";i:3;s:14:"AUTO_INCREMENT";}}}i:1;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:8:"username";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:1:{i:0;i:64;}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:7:"indexes";N;s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:4:"NULL";}}}i:2;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:8:"password";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:1:{i:0;i:256;}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:7:"indexes";N;s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:2;a:2:{s:4:"name";s:7:"DEFAULT";s:5:"value";s:6:"123456";}}}}i:3;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:5:"pk_id";s:4:"type";s:11:"PRIMARY KEY";s:7:"indexes";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:1:{i:0;s:2:"id";}s:3:"raw";a:1:{i:0;s:4:"`id`";}}s:7:"options";N;}i:4;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";N;s:4:"type";s:6:"UNIQUE";s:7:"indexes";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:1:{i:0;s:8:"username";}s:3:"raw";a:1:{i:0;s:8:"username";}}s:7:"options";N;}}s:4:"body";N;s:5:"first";N;s:4:"last";i:62;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:65:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"CREATE";s:5:"value";s:6:"CREATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"TABLE";s:5:"value";s:5:"TABLE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:13:"IF NOT EXISTS";s:5:"value";s:13:"IF NOT EXISTS";s:4:"type";i:1;s:5:"flags";i:5;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:27;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:32;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:33;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:39;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"INT";s:5:"value";s:3:"INT";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:44;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"NOT NULL";s:5:"value";s:8:"NOT NULL";s:4:"type";i:1;s:5:"flags";i:5;s:8:"position";i:48;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:14:"AUTO_INCREMENT";s:5:"value";s:14:"AUTO_INCREMENT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:57;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:71;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:72;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:77;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:85;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:86;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:93;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"64";s:5:"value";i:64;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:94;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:96;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:97;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"NULL";s:5:"value";s:4:"NULL";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:98;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:102;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:103;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`password`";s:5:"value";s:8:"password";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:108;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:118;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VARCHAR";s:5:"value";s:7:"VARCHAR";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:119;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:126;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"256";s:5:"value";i:256;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:127;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:130;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:131;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"DEFAULT";s:5:"value";s:7:"DEFAULT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:132;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"'123456'";s:5:"value";s:6:"123456";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:140;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:148;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:149;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"CONSTRAINT";s:5:"value";s:10:"CONSTRAINT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:154;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:164;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"pk_id";s:5:"value";s:5:"pk_id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:165;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:170;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"PRIMARY KEY";s:5:"value";s:11:"PRIMARY KEY";s:4:"type";i:1;s:5:"flags";i:21;s:8:"position";i:171;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:182;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:183;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:184;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:188;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:189;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:190;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"UNIQUE";s:5:"value";s:6:"UNIQUE";s:4:"type";i:1;s:5:"flags";i:19;s:8:"position";i:195;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:201;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:202;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:203;}i:56;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:211;}i:57;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:212;}i:58;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:213;}i:59;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:214;}i:60;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"ENGINE";s:5:"value";s:6:"ENGINE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:215;}i:61;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:221;}i:62;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:222;}i:63;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:228;}i:64;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:65;s:3:"idx";i:65;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":8:{s:4:"name";O:37:"SqlParser\Fragments\CreateDefFragment":1:{s:4:"name";s:5:"users";}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:5:"TABLE";i:3;s:13:"IF NOT EXISTS";}}s:10:"parameters";N;s:12:"tableOptions";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;a:2:{s:4:"name";s:6:"ENGINE";s:5:"value";s:6:"InnoDB";}}}s:6:"fields";a:5:{i:0;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:2:"id";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:3:"INT";s:4:"size";a:0:{}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:7:"indexes";N;s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:8:"NOT NULL";i:3;s:14:"AUTO_INCREMENT";}}}i:1;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:8:"username";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:1:{i:0;i:64;}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:7:"indexes";N;s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:4:"NULL";}}}i:2;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:8:"password";s:4:"type";O:36:"SqlParser\Fragments\DataTypeFragment":3:{s:4:"name";s:7:"VARCHAR";s:4:"size";a:1:{i:0;i:256;}s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}}s:7:"indexes";N;s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:2;a:2:{s:4:"name";s:7:"DEFAULT";s:5:"value";s:6:"123456";}}}}i:3;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";s:5:"pk_id";s:4:"type";s:11:"PRIMARY KEY";s:7:"indexes";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:1:{i:0;s:2:"id";}s:3:"raw";a:1:{i:0;s:4:"`id`";}}s:7:"options";N;}i:4;O:36:"SqlParser\Fragments\FieldDefFragment":4:{s:4:"name";N;s:4:"type";s:6:"UNIQUE";s:7:"indexes";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:1:{i:0;s:8:"username";}s:3:"raw";a:1:{i:0;s:8:"username";}}s:7:"options";N;}}s:4:"body";N;s:5:"first";N;s:4:"last";i:62;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseDelete.out b/tests/data/parseDelete.out index 3f087c8..42f95b3 100644 --- a/tests/data/parseDelete.out +++ b/tests/data/parseDelete.out @@ -1,7 +1,7 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:37:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"DELETE";s:5:"value";s:6:"DELETE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:20;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:37:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"DELETE";s:5:"value";s:6:"DELETE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:20;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:24;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"`test`";s:5:"value";s:4:"test";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:29;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:35;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:36;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:41;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:42;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:52;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"<";s:5:"value";s:1:"<";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:56;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"3";s:5:"value";i:3;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:57;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"AND";s:5:"value";s:3:"AND";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:59;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:62;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:63;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:64;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:72;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""Dan"";s:5:"value";s:3:"Dan";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:73;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:78;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"or";s:5:"value";s:2:"OR";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:79;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:82;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:90;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:6:""Paul"";s:5:"value";s:4:"Paul";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:91;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:97;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:98;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"ORDER";s:5:"value";s:5:"ORDER";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:99;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:104;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:105;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:41;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:42;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:52;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"<";s:5:"value";s:1:"<";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:56;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"3";s:5:"value";i:3;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:57;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"AND";s:5:"value";s:3:"AND";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:59;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:62;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:63;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:64;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:72;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""Dan"";s:5:"value";s:3:"Dan";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:73;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:78;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"or";s:5:"value";s:2:"OR";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:79;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:82;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:90;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:6:""Paul"";s:5:"value";s:4:"Paul";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:91;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:97;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:98;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"ORDER";s:5:"value";s:5:"ORDER";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:99;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:104;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:105;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:107;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:112;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:114;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:37;s:3:"idx";i:37;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\DeleteStatement":8:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:12:"`test`.users";s:5:"alias";N;}}s:9:"partition";N;s:5:"where";a:7:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:6:"`id`<3";}i:1;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:1;s:9:"condition";s:3:"AND";}i:2;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:1;s:9:"condition";s:1:"(";}i:3;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:14:"username="Dan"";}i:4;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:1;s:9:"condition";s:2:"OR";}i:5;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:15:"username="Paul"";}i:6;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:1;s:9:"condition";s:1:")";}}s:5:"order";a:1:{i:0;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:2:"id";s:4:"type";s:3:"ASC";}}s:5:"limit";N;s:5:"first";N;s:4:"last";i:34;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseInsert.out b/tests/data/parseInsert.out index b1b859f..fd80873 100644 --- a/tests/data/parseInsert.out +++ b/tests/data/parseInsert.out @@ -1,6 +1,6 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:41:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"INSERT";s:5:"value";s:6:"INSERT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:20;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:41:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"INSERT";s:5:"value";s:6:"INSERT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:20;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:24;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:29;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"`id`";s:5:"value";s:2:"id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:35;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:39;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`username`";s:5:"value";s:8:"username";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:41;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:51;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:52;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`password`";s:5:"value";s:8:"password";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:53;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:63;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:64;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"VALUES";s:5:"value";s:6:"VALUES";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:65;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:64;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"VALUES";s:5:"value";s:6:"VALUES";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:65;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:71;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:76;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:77;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:78;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:79;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""Dan"";s:5:"value";s:3:"Dan";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:80;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:85;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:86;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:34:""5d41402abc4b2a76b9719d911017c592"";s:5:"value";s:32:"5d41402abc4b2a76b9719d911017c592";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:87;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:121;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:122;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:123;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:128;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:129;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:130;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:131;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:6:""Paul"";s:5:"value";s:4:"Paul";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:132;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:138;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:139;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:34:""7d793037a0760186574b0282f2f435e7"";s:5:"value";s:32:"7d793037a0760186574b0282f2f435e7";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:140;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:174;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:175;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:41;s:3:"idx";i:41;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\InsertStatement":5:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:4:"into";O:31:"SqlParser\Fragments\IntoKeyword":2:{s:5:"table";s:5:"users";s:6:"fields";a:3:{i:0;s:2:"id";i:1;s:8:"username";i:2;s:8:"password";}}s:6:"values";a:2:{i:0;O:33:"SqlParser\Fragments\ValuesKeyword":1:{s:6:"values";a:3:{i:0;s:1:"1";i:1;s:3:"Dan";i:2;s:32:"5d41402abc4b2a76b9719d911017c592";}}i:1;O:33:"SqlParser\Fragments\ValuesKeyword":1:{s:6:"values";a:3:{i:0;s:1:"2";i:1;s:4:"Paul";i:2;s:32:"7d793037a0760186574b0282f2f435e7";}}}s:5:"first";N;s:4:"last";i:38;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseRename.out b/tests/data/parseRename.out index 5208666..19987a5 100644 --- a/tests/data/parseRename.out +++ b/tests/data/parseRename.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:11:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RENAME";s:5:"value";s:6:"RENAME";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"TABLE";s:5:"value";s:5:"TABLE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"TO";s:5:"value";s:2:"TO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:17;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:20;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:23;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:11;s:3:"idx";i:11;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\RenameStatement":3:{s:7:"renames";a:1:{i:0;O:33:"SqlParser\Fragments\RenameKeyword":2:{s:3:"old";s:3:"foo";s:3:"new";s:3:"bar";}}s:5:"first";N;s:4:"last";i:8;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:11:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RENAME";s:5:"value";s:6:"RENAME";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"TABLE";s:5:"value";s:5:"TABLE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"TO";s:5:"value";s:2:"TO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:17;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:20;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:23;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:11;s:3:"idx";i:11;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\RenameStatement":3:{s:7:"renames";a:1:{i:0;O:33:"SqlParser\Fragments\RenameKeyword":2:{s:3:"old";s:3:"foo";s:3:"new";s:3:"bar";}}s:5:"first";N;s:4:"last";i:8;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseRename2.out b/tests/data/parseRename2.out index b465883..293e583 100644 --- a/tests/data/parseRename2.out +++ b/tests/data/parseRename2.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:18:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RENAME";s:5:"value";s:6:"RENAME";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"TABLE";s:5:"value";s:5:"TABLE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"TO";s:5:"value";s:2:"TO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:17;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:20;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:23;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:24;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:25;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:28;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"TO";s:5:"value";s:2:"TO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:29;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"qux";s:5:"value";s:3:"qux";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:32;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:18;s:3:"idx";i:18;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\RenameStatement":3:{s:7:"renames";a:2:{i:0;O:33:"SqlParser\Fragments\RenameKeyword":2:{s:3:"old";s:3:"foo";s:3:"new";s:3:"bar";}i:1;O:33:"SqlParser\Fragments\RenameKeyword":2:{s:3:"old";s:3:"baz";s:3:"new";s:3:"qux";}}s:5:"first";N;s:4:"last";i:15;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:18:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"RENAME";s:5:"value";s:6:"RENAME";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"TABLE";s:5:"value";s:5:"TABLE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:12;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"foo";s:5:"value";s:3:"foo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:13;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"TO";s:5:"value";s:2:"TO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:17;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:19;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:20;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:23;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:24;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"baz";s:5:"value";s:3:"baz";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:25;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:28;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"TO";s:5:"value";s:2:"TO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:29;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"qux";s:5:"value";s:3:"qux";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:32;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:35;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:18;s:3:"idx";i:18;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\RenameStatement":3:{s:7:"renames";a:2:{i:0;O:33:"SqlParser\Fragments\RenameKeyword":2:{s:3:"old";s:3:"foo";s:3:"new";s:3:"bar";}i:1;O:33:"SqlParser\Fragments\RenameKeyword":2:{s:3:"old";s:3:"baz";s:3:"new";s:3:"qux";}}s:5:"first";N;s:4:"last";i:15;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseReplace.out b/tests/data/parseReplace.out index 0dd5e3a..6dc688e 100644 --- a/tests/data/parseReplace.out +++ b/tests/data/parseReplace.out @@ -1,3 +1,3 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:31:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"REPLACE";s:5:"value";s:7:"REPLACE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:7;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:8;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:21;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:25;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:26;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:36;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:44;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:45;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"VALUES";s:5:"value";s:6:"VALUES";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:46;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:52;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:54;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:55;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'Foo'";s:5:"value";s:3:"Foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:57;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:62;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:63;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:64;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:65;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:66;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:67;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:68;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'Bar'";s:5:"value";s:3:"Bar";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:69;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:74;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:31;s:3:"idx";i:31;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:4:"into";O:31:"SqlParser\Fragments\IntoKeyword":2:{s:5:"table";s:5:"users";s:6:"fields";a:2:{i:0;s:2:"id";i:1;s:8:"username";}}s:6:"values";a:2:{i:0;O:33:"SqlParser\Fragments\ValuesKeyword":1:{s:6:"values";a:2:{i:0;s:1:"1";i:1;s:3:"Foo";}}i:1;O:33:"SqlParser\Fragments\ValuesKeyword":1:{s:6:"values";a:2:{i:0;s:1:"2";i:1;s:3:"Bar";}}}s:3:"set";N;s:5:"first";N;s:4:"last";i:29;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:31:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"REPLACE";s:5:"value";s:7:"REPLACE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:7;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:8;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:21;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:25;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:26;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:36;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:44;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:45;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"VALUES";s:5:"value";s:6:"VALUES";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:46;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:52;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:54;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:55;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'Foo'";s:5:"value";s:3:"Foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:57;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:62;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:63;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:64;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:65;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:66;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:67;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:68;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'Bar'";s:5:"value";s:3:"Bar";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:69;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:74;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:31;s:3:"idx";i:31;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:4:"into";O:31:"SqlParser\Fragments\IntoKeyword":2:{s:5:"table";s:5:"users";s:6:"fields";a:2:{i:0;s:2:"id";i:1;s:8:"username";}}s:6:"values";a:2:{i:0;O:33:"SqlParser\Fragments\ValuesKeyword":1:{s:6:"values";a:2:{i:0;s:1:"1";i:1;s:3:"Foo";}}i:1;O:33:"SqlParser\Fragments\ValuesKeyword":1:{s:6:"values";a:2:{i:0;s:1:"2";i:1;s:3:"Bar";}}}s:3:"set";N;s:5:"first";N;s:4:"last";i:29;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseReplace2.out b/tests/data/parseReplace2.out index 6ecb121..0d014c9 100644 --- a/tests/data/parseReplace2.out +++ b/tests/data/parseReplace2.out @@ -1,4 +1,4 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:24:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"REPLACE";s:5:"value";s:7:"REPLACE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:7;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:8;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:21;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:25;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:26;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:36;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:38;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:39;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:41;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:42;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:24:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"REPLACE";s:5:"value";s:7:"REPLACE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:7;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:12:"LOW_PRIORITY";s:5:"value";s:12:"LOW_PRIORITY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:8;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"INTO";s:5:"value";s:4:"INTO";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:21;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:25;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:26;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:36;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:38;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:39;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:41;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:42;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:43;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:57;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:58;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'Bar'";s:5:"value";s:3:"Bar";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:59;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:64;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:24;s:3:"idx";i:24;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:4:"into";O:31:"SqlParser\Fragments\IntoKeyword":2:{s:5:"table";s:5:"users";s:6:"fields";N;}s:6:"values";N;s:3:"set";a:2:{i:0;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:2:"id";s:5:"value";i:1;}i:1;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:8:"username";s:5:"value";s:3:"Bar";}}s:5:"first";N;s:4:"last";i:21;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseSelect.out b/tests/data/parseSelect.out index 24456e2..0c056f7 100644 --- a/tests/data/parseSelect.out +++ b/tests/data/parseSelect.out @@ -1,14 +1,14 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:83:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"ALL";s:5:"value";s:3:"ALL";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:18:"MAX_STATEMENT_TIME";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:11;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:30;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"10";s:5:"value";i:10;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:39;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"+";s:5:"value";s:1:"+";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:41;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:43;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:45;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"result";s:5:"value";s:6:"result";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:54;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:83:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"ALL";s:5:"value";s:3:"ALL";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:18:"MAX_STATEMENT_TIME";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:11;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:30;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"10";s:5:"value";i:10;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:39;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"+";s:5:"value";s:1:"+";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:41;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:43;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:45;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"result";s:5:"value";s:6:"result";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:54;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:55;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:60;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:64;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:65;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:70;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:72;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:73;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"test";s:5:"value";s:4:"test";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:78;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:82;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"`users`";s:5:"value";s:5:"users";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:83;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:90;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:91;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:99;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:100;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:102;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"`name`";s:5:"value";s:4:"name";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:103;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:109;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:110;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:73;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"test";s:5:"value";s:4:"test";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:78;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:82;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"`users`";s:5:"value";s:5:"users";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:83;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:90;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:91;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:99;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:100;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:102;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"`name`";s:5:"value";s:4:"name";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:103;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:109;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:110;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:114;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"`test`";s:5:"value";s:4:"test";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:119;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:125;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:126;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:131;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:132;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"posts";s:5:"value";s:5:"posts";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:133;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:138;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:143;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:152;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:153;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p1";s:5:"value";s:2:"p1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:154;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:156;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:157;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p2";s:5:"value";s:2:"p2";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:158;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:160;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:161;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:162;}i:56;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:138;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:143;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:152;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:153;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p1";s:5:"value";s:2:"p1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:154;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:156;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:157;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p2";s:5:"value";s:2:"p2";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:158;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:160;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:161;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:162;}i:56;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:167;}i:57;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:172;}i:58;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:174;}i:59;O:15:"SqlParser\Token":5:{s:5:"token";s:1:">";s:5:"value";s:1:">";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:175;}i:60;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:176;}i:61;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"0";s:5:"value";i:0;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:177;}i:62;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:178;}i:63;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"ORDER";s:5:"value";s:5:"ORDER";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:179;}i:64;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:184;}i:65;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:185;}i:66;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:187;}i:67;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:192;}i:68;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:200;}i:69;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"DESC";s:5:"value";s:4:"DESC";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:201;}i:70;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:205;}i:71;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:178;}i:63;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"ORDER";s:5:"value";s:5:"ORDER";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:179;}i:64;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:184;}i:65;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:185;}i:66;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:187;}i:67;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:192;}i:68;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:200;}i:69;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"DESC";s:5:"value";s:4:"DESC";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:201;}i:70;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:205;}i:71;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:206;}i:72;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:211;}i:73;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:213;}i:74;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"LIMIT";s:5:"value";s:5:"LIMIT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:214;}i:75;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:219;}i:76;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"3";s:5:"value";i:3;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:220;}i:77;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:221;}i:78;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"OFFSET";s:5:"value";s:6:"OFFSET";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:222;}i:79;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:228;}i:80;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:229;}i:81;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:230;}i:82;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:83;s:3:"idx";i:83;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:3:"ALL";i:3;a:2:{s:4:"name";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:2:"10";}}}s:4:"expr";a:4:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:6:"1 + 2 ";s:5:"alias";s:6:"result";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:4:"@idx";s:5:"alias";N;}i:2;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;}i:3;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";s:8:"username";s:4:"expr";s:21:"test.`users`.username";s:5:"alias";s:4:"name";}}s:4:"from";a:2:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:12:"`test`.users";s:5:"alias";N;}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:5:"posts";s:6:"column";N;s:4:"expr";s:5:"posts";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}s:3:"raw";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:4:"id>0";}}s:5:"group";N;s:6:"having";N;s:5:"order";a:2:{i:0;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:8:"username";s:4:"type";s:4:"DESC";}i:1;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:2:"id";s:4:"type";s:3:"ASC";}}s:5:"limit";O:32:"SqlParser\Fragments\LimitKeyword":2:{s:6:"offset";i:2;s:9:"row_count";i:3;}s:4:"join";N;s:5:"first";N;s:4:"last";i:80;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:213;}i:74;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"LIMIT";s:5:"value";s:5:"LIMIT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:214;}i:75;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:219;}i:76;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"3";s:5:"value";i:3;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:220;}i:77;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:221;}i:78;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"OFFSET";s:5:"value";s:6:"OFFSET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:222;}i:79;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:228;}i:80;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:229;}i:81;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:230;}i:82;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:83;s:3:"idx";i:83;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:3:"ALL";i:3;a:2:{s:4:"name";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:2:"10";}}}s:4:"expr";a:4:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:6:"1 + 2 ";s:5:"alias";s:6:"result";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:4:"@idx";s:5:"alias";N;}i:2;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;}i:3;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";s:8:"username";s:4:"expr";s:21:"test.`users`.username";s:5:"alias";s:4:"name";}}s:4:"from";a:2:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:12:"`test`.users";s:5:"alias";N;}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:5:"posts";s:6:"column";N;s:4:"expr";s:5:"posts";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}s:3:"raw";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:4:"id>0";}}s:5:"group";N;s:6:"having";N;s:5:"order";a:2:{i:0;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:8:"username";s:4:"type";s:4:"DESC";}i:1;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:2:"id";s:4:"type";s:3:"ASC";}}s:5:"limit";O:32:"SqlParser\Fragments\LimitKeyword":2:{s:6:"offset";i:2;s:9:"row_count";i:3;}s:4:"join";N;s:5:"first";N;s:4:"last";i:80;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseSelect2.out b/tests/data/parseSelect2.out index 3e4d446..c7d3f3f 100644 --- a/tests/data/parseSelect2.out +++ b/tests/data/parseSelect2.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:33:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:15;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:20;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:22;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:25;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:27;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:28;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'baz'";s:5:"value";s:3:"baz";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:35;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:40;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:41;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:42;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"qux";s:5:"value";s:3:"qux";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:45;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:48;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:51;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"as";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:52;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:54;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"b";s:5:"value";s:1:"b";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:55;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:57;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:61;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"tabl";s:5:"value";s:4:"tabl";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:62;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:66;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:33;s:3:"idx";i:33;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:3:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:18:"(SELECT 'foo') bar";s:5:"alias";s:3:"bar";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:15:"(SELECT 'baz') ";s:5:"alias";s:3:"qux";}i:2;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";s:1:"a";s:4:"expr";s:1:"a";s:5:"alias";s:1:"b";}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:4:"tabl";s:6:"column";N;s:4:"expr";s:4:"tabl";s:5:"alias";N;}}s:9:"partition";N;s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:30;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:33:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:15;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:20;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"bar";s:5:"value";s:3:"bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:22;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:25;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:26;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:27;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:28;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'baz'";s:5:"value";s:3:"baz";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:35;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:40;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:41;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:42;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"qux";s:5:"value";s:3:"qux";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:45;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:48;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:49;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:50;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:51;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"as";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:52;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:54;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"b";s:5:"value";s:1:"b";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:55;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:56;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:57;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:61;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"tabl";s:5:"value";s:4:"tabl";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:62;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:66;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:33;s:3:"idx";i:33;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:3:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:18:"(SELECT 'foo') bar";s:5:"alias";s:3:"bar";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:15:"(SELECT 'baz') ";s:5:"alias";s:3:"qux";}i:2;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";s:1:"a";s:4:"expr";s:1:"a";s:5:"alias";s:1:"b";}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:4:"tabl";s:6:"column";N;s:4:"expr";s:4:"tabl";s:5:"alias";N;}}s:9:"partition";N;s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:30;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseSelectErr1.out b/tests/data/parseSelectErr1.out index 7adbc3a..54a4c98 100644 --- a/tests/data/parseSelectErr1.out +++ b/tests/data/parseSelectErr1.out @@ -1,14 +1,14 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:77:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"ALL";s:5:"value";s:3:"ALL";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:18:"MAX_STATEMENT_TIME";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:11;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:30;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"10";s:5:"value";i:10;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:39;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"+";s:5:"value";s:1:"+";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:41;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:43;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:45;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"result";s:5:"value";s:6:"result";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:54;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:77:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"ALL";s:5:"value";s:3:"ALL";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:10;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:18:"MAX_STATEMENT_TIME";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:11;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:30;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:31;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"10";s:5:"value";i:10;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:32;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:34;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:39;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:40;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"+";s:5:"value";s:1:"+";s:4:"type";i:2;s:5:"flags";i:1;s:8:"position";i:41;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:43;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:45;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"result";s:5:"value";s:6:"result";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:54;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:55;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"@idx";s:5:"value";s:3:"idx";s:4:"type";i:8;s:5:"flags";i:1;s:8:"position";i:60;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:64;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:65;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:70;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:72;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:73;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"test";s:5:"value";s:4:"test";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:78;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:82;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"`users`";s:5:"value";s:5:"users";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:83;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:90;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:91;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:99;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:100;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:102;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:103;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:73;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"test";s:5:"value";s:4:"test";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:78;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:82;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"`users`";s:5:"value";s:5:"users";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:83;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:90;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:91;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:99;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"AS";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:100;}i:34;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:102;}i:35;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"FROM";s:5:"value";s:4:"FROM";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:103;}i:36;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:107;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"`test`";s:5:"value";s:4:"test";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:112;}i:38;O:15:"SqlParser\Token":5:{s:5:"token";s:1:".";s:5:"value";s:1:".";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:118;}i:39;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:119;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:124;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:129;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:138;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:139;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p1";s:5:"value";s:2:"p1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:140;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:142;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:143;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p2";s:5:"value";s:2:"p2";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:144;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:146;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:147;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:148;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:124;}i:41;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"PARTITION";s:5:"value";s:9:"PARTITION";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:129;}i:42;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:138;}i:43;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:139;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p1";s:5:"value";s:2:"p1";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:140;}i:45;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:142;}i:46;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:143;}i:47;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"p2";s:5:"value";s:2:"p2";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:144;}i:48;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:146;}i:49;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:147;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:148;}i:51;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:153;}i:52;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:158;}i:53;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:160;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:1:">";s:5:"value";s:1:">";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:161;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:162;}i:56;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"0";s:5:"value";i:0;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:163;}i:57;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:164;}i:58;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"ORDER";s:5:"value";s:5:"ORDER";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:165;}i:59;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:170;}i:60;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:171;}i:61;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" - ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:173;}i:62;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:178;}i:63;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:186;}i:64;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"DESC";s:5:"value";s:4:"DESC";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:187;}i:65;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:191;}i:66;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:164;}i:58;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"ORDER";s:5:"value";s:5:"ORDER";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:165;}i:59;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:170;}i:60;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"BY";s:5:"value";s:2:"BY";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:171;}i:61;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" + ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:173;}i:62;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:178;}i:63;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:186;}i:64;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"DESC";s:5:"value";s:4:"DESC";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:187;}i:65;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:191;}i:66;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:192;}i:67;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:197;}i:68;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:199;}i:69;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"LIMIT";s:5:"value";s:5:"LIMIT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:200;}i:70;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:205;}i:71;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:206;}i:72;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:207;}i:73;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:208;}i:74;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"3";s:5:"value";i:3;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:209;}i:75;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:210;}i:76;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:77;s:3:"idx";i:77;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:3:"ALL";i:3;a:2:{s:4:"name";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:2:"10";}}}s:4:"expr";a:4:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:6:"1 + 2 ";s:5:"alias";s:6:"result";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:4:"@idx";s:5:"alias";N;}i:2;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;}i:3;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";s:8:"username";s:4:"expr";s:21:"test.`users`.username";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:12:"`test`.users";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}s:3:"raw";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:4:"id>0";}}s:5:"group";N;s:6:"having";N;s:5:"order";a:2:{i:0;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:8:"username";s:4:"type";s:4:"DESC";}i:1;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:2:"id";s:4:"type";s:3:"ASC";}}s:5:"limit";O:32:"SqlParser\Fragments\LimitKeyword":2:{s:6:"offset";i:2;s:9:"row_count";i:3;}s:4:"join";N;s:5:"first";N;s:4:"last";i:74;}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:19:"Alias was expected.";i:1;N;i:2;i:0;}}}
\ No newline at end of file +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:199;}i:69;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"LIMIT";s:5:"value";s:5:"LIMIT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:200;}i:70;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:205;}i:71;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:206;}i:72;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:207;}i:73;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:208;}i:74;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"3";s:5:"value";i:3;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:209;}i:75;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:210;}i:76;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:77;s:3:"idx";i:77;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:2:{i:1;s:3:"ALL";i:3;a:2:{s:4:"name";s:18:"MAX_STATEMENT_TIME";s:5:"value";s:2:"10";}}}s:4:"expr";a:4:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:6:"1 + 2 ";s:5:"alias";s:6:"result";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:4:"@idx";s:5:"alias";N;}i:2;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;}i:3;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";s:8:"username";s:4:"expr";s:21:"test.`users`.username";s:5:"alias";N;}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";s:4:"test";s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:12:"`test`.users";s:5:"alias";N;}}s:9:"partition";O:33:"SqlParser\Fragments\ArrayFragment":2:{s:5:"array";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}s:3:"raw";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:4:"id>0";}}s:5:"group";N;s:6:"having";N;s:5:"order";a:2:{i:0;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:8:"username";s:4:"type";s:4:"DESC";}i:1;O:32:"SqlParser\Fragments\OrderKeyword":2:{s:6:"column";s:2:"id";s:4:"type";s:3:"ASC";}}s:5:"limit";O:32:"SqlParser\Fragments\LimitKeyword":2:{s:6:"offset";i:2;s:9:"row_count";i:3;}s:4:"join";N;s:5:"first";N;s:4:"last";i:74;}}}s:6:"errors";a:1:{i:0;a:3:{i:0;s:19:"Alias was expected.";i:1;N;i:2;i:0;}}}
\ No newline at end of file diff --git a/tests/data/parseSelectNested.out b/tests/data/parseSelectNested.out index 1fce8d8..d9b57ef 100644 --- a/tests/data/parseSelectNested.out +++ b/tests/data/parseSelectNested.out @@ -1 +1 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:24:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:15;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:20;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"as";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:22;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:24;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"Bar";s:5:"value";s:3:"Bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:25;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:28;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:31;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'baz'";s:5:"value";s:3:"baz";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:38;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:43;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"as";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:45;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"fOo";s:5:"value";s:3:"fOo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:51;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:24;s:3:"idx";i:24;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:2:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:15:"(SELECT 'foo') ";s:5:"alias";s:3:"Bar";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:15:"(SELECT 'baz') ";s:5:"alias";s:3:"fOo";}}s:4:"from";N;s:9:"partition";N;s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:21;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:24:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:7;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:8;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:14;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'foo'";s:5:"value";s:3:"foo";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:15;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:20;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:21;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"as";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:22;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:24;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"Bar";s:5:"value";s:3:"Bar";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:25;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:28;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:29;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"(";s:5:"value";s:1:"(";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:30;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"SELECT";s:5:"value";s:6:"SELECT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:31;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:37;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"'baz'";s:5:"value";s:3:"baz";s:4:"type";i:7;s:5:"flags";i:1;s:8:"position";i:38;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:1:")";s:5:"value";s:1:")";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:43;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:44;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"as";s:5:"value";s:2:"AS";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:45;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:47;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"fOo";s:5:"value";s:3:"fOo";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:48;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:51;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:24;s:3:"idx";i:24;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":12:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"expr";a:2:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:15:"(SELECT 'foo') ";s:5:"alias";s:3:"Bar";}i:1;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:15:"(SELECT 'baz') ";s:5:"alias";s:3:"fOo";}}s:4:"from";N;s:9:"partition";N;s:5:"where";N;s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:4:"join";N;s:5:"first";N;s:4:"last";i:21;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseUpdate.out b/tests/data/parseUpdate.out index c76e600..355a4bb 100644 --- a/tests/data/parseUpdate.out +++ b/tests/data/parseUpdate.out @@ -1,5 +1,5 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:18:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"UPDATE";s:5:"value";s:6:"UPDATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:18:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"UPDATE";s:5:"value";s:6:"UPDATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:11;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:25;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:33;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:34;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""Dan"";s:5:"value";s:3:"Dan";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:36;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:41;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:47;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:49;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"155";s:5:"value";i:155;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:50;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:18;s:3:"idx";i:18;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\UpdateStatement":8:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:5:"users";s:5:"alias";N;}}s:3:"set";a:2:{i:0;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:8:"username";s:5:"value";s:3:"Dan";}i:1;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:2:"id";s:5:"value";i:155;}}s:5:"where";N;s:5:"order";N;s:5:"limit";N;s:5:"first";N;s:4:"last";i:15;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/data/parseUpdate2.out b/tests/data/parseUpdate2.out index fbd7282..d9cceca 100644 --- a/tests/data/parseUpdate2.out +++ b/tests/data/parseUpdate2.out @@ -1,8 +1,8 @@ -a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:34:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"UPDATE";s:5:"value";s:6:"UPDATE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +a:2:{s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:34:{i:0;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"UPDATE";s:5:"value";s:6:"UPDATE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:0;}i:1;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:6;}i:2;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"users";s:5:"value";s:5:"users";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:11;}i:3;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:16;}i:4;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"SET";s:5:"value";s:3:"SET";s:4:"type";i:1;s:5:"flags";i:11;s:8:"position";i:17;}i:5;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:20;}i:6;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:25;}i:7;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:33;}i:8;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:34;}i:9;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:35;}i:10;O:15:"SqlParser\Token":5:{s:5:"token";s:5:""Dan"";s:5:"value";s:3:"Dan";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:36;}i:11;O:15:"SqlParser\Token":5:{s:5:"token";s:1:",";s:5:"value";s:1:",";s:4:"type";i:2;s:5:"flags";i:16;s:8:"position";i:41;}i:12;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:42;}i:13;O:15:"SqlParser\Token":5:{s:5:"token";s:2:"id";s:5:"value";s:2:"id";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:47;}i:14;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:49;}i:15;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"155";s:5:"value";i:155;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:50;}i:16;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:54;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:53;}i:17;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"WHERE";s:5:"value";s:5:"WHERE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:54;}i:18;O:15:"SqlParser\Token":5:{s:5:"token";s:5:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:59;}i:19;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"username";s:5:"value";s:8:"username";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:64;}i:20;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:72;}i:21;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"=";s:5:"value";s:1:"=";s:4:"type";i:2;s:5:"flags";i:2;s:8:"position";i:73;}i:22;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:74;}i:23;O:15:"SqlParser\Token":5:{s:5:"token";s:6:""Paul"";s:5:"value";s:4:"Paul";s:4:"type";i:7;s:5:"flags";i:2;s:8:"position";i:75;}i:24;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"LIMIT";s:5:"value";s:5:"LIMIT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:82;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:87;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:88;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:89;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"OFFSET";s:5:"value";s:6:"OFFSET";s:4:"type";i:1;s:5:"flags";i:2;s:8:"position";i:90;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:96;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:97;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:98;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:34;s:3:"idx";i:34;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\UpdateStatement":8:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:5:"users";s:5:"alias";N;}}s:3:"set";a:2:{i:0;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:8:"username";s:5:"value";s:3:"Dan";}i:1;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:2:"id";s:5:"value";i:155;}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:15:"username="Paul"";}}s:5:"order";N;s:5:"limit";O:32:"SqlParser\Fragments\LimitKeyword":2:{s:6:"offset";i:2;s:9:"row_count";i:1;}s:5:"first";N;s:4:"last";i:31;}}}s:6:"errors";a:0:{}}
\ No newline at end of file +";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:81;}i:25;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"LIMIT";s:5:"value";s:5:"LIMIT";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:82;}i:26;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:87;}i:27;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"1";s:5:"value";i:1;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:88;}i:28;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:89;}i:29;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"OFFSET";s:5:"value";s:6:"OFFSET";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:90;}i:30;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:96;}i:31;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"2";s:5:"value";i:2;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:97;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:1:";";s:5:"value";s:1:";";s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";i:98;}i:33;O:15:"SqlParser\Token":5:{s:5:"token";N;s:5:"value";N;s:4:"type";i:9;s:5:"flags";i:0;s:8:"position";N;}}s:5:"count";i:34;s:3:"idx";i:34;}s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\UpdateStatement":8:{s:7:"options";O:35:"SqlParser\Fragments\OptionsFragment":1:{s:7:"options";a:0:{}}s:4:"from";a:1:{i:0;O:33:"SqlParser\Fragments\FieldFragment":5:{s:8:"database";N;s:5:"table";s:5:"users";s:6:"column";N;s:4:"expr";s:5:"users";s:5:"alias";N;}}s:3:"set";a:2:{i:0;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:8:"username";s:5:"value";s:3:"Dan";}i:1;O:30:"SqlParser\Fragments\SetKeyword":2:{s:6:"column";s:2:"id";s:5:"value";i:155;}}s:5:"where";a:1:{i:0;O:32:"SqlParser\Fragments\WhereKeyword":2:{s:10:"isOperator";b:0;s:9:"condition";s:15:"username="Paul"";}}s:5:"order";N;s:5:"limit";O:32:"SqlParser\Fragments\LimitKeyword":2:{s:6:"offset";i:2;s:9:"row_count";i:1;}s:5:"first";N;s:4:"last";i:31;}}}s:6:"errors";a:0:{}}
\ No newline at end of file diff --git a/tests/lexer/IsMethodsTest.php b/tests/lexer/IsMethodsTest.php index 7f6b874..dfd065d 100644 --- a/tests/lexer/IsMethodsTest.php +++ b/tests/lexer/IsMethodsTest.php @@ -12,14 +12,17 @@ class IsMethodsTest extends TestCase public function testIsKeyword() { - $this->assertEquals(Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('SELECT')); - $this->assertEquals(Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('ALL')); - $this->assertEquals(Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('DISTINCT')); + $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('SELECT')); + $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('ALL')); + $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('DISTINCT')); - $this->assertEquals(Token::FLAG_KEYWORD_COMPOSED, Context::isKeyword('PRIMARY KEY')); - $this->assertEquals(Token::FLAG_KEYWORD_COMPOSED, Context::isKeyword('CHARACTER SET')); + $this->assertEquals( + 1 | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + Context::isKeyword('PRIMARY KEY') + ); + $this->assertEquals(1 | Token::FLAG_KEYWORD_COMPOSED, Context::isKeyword('CHARACTER SET')); - $this->assertEquals(Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('FROM', true)); + $this->assertEquals(1 | Token::FLAG_KEYWORD_RESERVED, Context::isKeyword('FROM', true)); $this->assertEquals(null, Context::isKeyword('PRIMARY KEY', true)); $this->assertEquals(null, Context::isKeyword('foo')); |