diff options
author | Dan Ungureanu <udan1107@gmail.com> | 2015-08-08 20:38:04 +0300 |
---|---|---|
committer | Dan Ungureanu <udan1107@gmail.com> | 2015-08-08 20:38:04 +0300 |
commit | ab778e942d8f3b3950cbd1eaf7fa10ea21aeea9f (patch) | |
tree | 6601dba770d512b51f503aa05ff4d88a045de512 | |
parent | 1abbd1dc1ae48330bef8ebc73bef53572f092c2b (diff) | |
download | sql-parser-ab778e942d8f3b3950cbd1eaf7fa10ea21aeea9f.zip sql-parser-ab778e942d8f3b3950cbd1eaf7fa10ea21aeea9f.tar.gz sql-parser-ab778e942d8f3b3950cbd1eaf7fa10ea21aeea9f.tar.bz2 |
Refactored field to something more appropriate depending on the context in which it is used.
21 files changed, 66 insertions, 66 deletions
diff --git a/src/Components/AlterOperation.php b/src/Components/AlterOperation.php index ae28d51..d704f25 100644 --- a/src/Components/AlterOperation.php +++ b/src/Components/AlterOperation.php @@ -1,7 +1,7 @@ <?php /** - * Parses a reference to a field. + * Parses an alter operation. * * @package SqlParser * @subpackage Components @@ -14,7 +14,7 @@ use SqlParser\Token; use SqlParser\TokensList; /** - * Parses a reference to a field. + * Parses an alter operation. * * @category Components * @package SqlParser @@ -178,10 +178,8 @@ class AlterOperation extends Component ++$brackets; } elseif ($token->value === ')') { --$brackets; - } elseif ($token->value === ',') { - if ($brackets === 0) { - break; - } + } elseif (($token->value === ',') && ($brackets === 0)) { + break; } } $ret->unknown[] = $token; diff --git a/src/Components/FieldDefinition.php b/src/Components/CreateDefinition.php index 351e8b5..4dfbb7a 100644 --- a/src/Components/FieldDefinition.php +++ b/src/Components/CreateDefinition.php @@ -1,7 +1,7 @@ <?php /** - * Parses the definition of a field. + * Parses the create definition of a column or a key. * * Used for parsing `CREATE TABLE` statement. * @@ -17,7 +17,7 @@ use SqlParser\Token; use SqlParser\TokensList; /** - * Parses the definition of a field. + * Parses the create definition of a column or a key. * * Used for parsing `CREATE TABLE` statement. * @@ -27,7 +27,7 @@ use SqlParser\TokensList; * @author Dan Ungureanu <udan1107@gmail.com> * @license http://opensource.org/licenses/GPL-2.0 GNU Public License */ -class FieldDefinition extends Component +class CreateDefinition extends Component { /** @@ -145,13 +145,13 @@ class FieldDefinition extends Component * @param TokensList $list The list of tokens that are being parsed. * @param array $options Parameters for parsing. * - * @return FieldDefinition[] + * @return CreateDefinition[] */ public static function parse(Parser $parser, TokensList $list, array $options = array()) { $ret = array(); - $expr = new FieldDefinition(); + $expr = new CreateDefinition(); /** * The state of the parser. @@ -234,7 +234,7 @@ class FieldDefinition extends Component if ((!empty($expr->type)) || (!empty($expr->key))) { $ret[] = $expr; } - $expr = new FieldDefinition(); + $expr = new CreateDefinition(); if ($token->value === ',') { $state = 1; } elseif ($token->value === ')') { @@ -269,7 +269,7 @@ class FieldDefinition extends Component } /** - * @param FieldDefinition|FieldDefinition[] $component The component to be built. + * @param CreateDefinition|CreateDefinition[] $component The component to be built. * * @return string */ diff --git a/src/Components/Expression.php b/src/Components/Expression.php index d7d0d4a..60f8554 100644 --- a/src/Components/Expression.php +++ b/src/Components/Expression.php @@ -1,7 +1,8 @@ <?php /** - * Parses a reference to a field. + * Parses a reference to an expression (column, table or database name, function + * call, mathematical expression, etc.). * * @package SqlParser * @subpackage Components @@ -15,7 +16,8 @@ use SqlParser\Token; use SqlParser\TokensList; /** - * Parses a reference to a field. + * Parses a reference to an expression (column, table or database name, function + * call, mathematical expression, etc.). * * @category Components * @package SqlParser diff --git a/src/Components/ExpressionArray.php b/src/Components/ExpressionArray.php index 2e082dc..f453154 100644 --- a/src/Components/ExpressionArray.php +++ b/src/Components/ExpressionArray.php @@ -1,7 +1,7 @@ <?php /** - * Parses a a list of fields delimited by a single comma. + * Parses a a list of expression delimited by a comma. * * @package SqlParser * @subpackage Components @@ -14,7 +14,7 @@ use SqlParser\Token; use SqlParser\TokensList; /** - * Parses a a list of fields delimited by a single comma. + * Parses a a list of expression delimited by a comma. * * @category Keywords * @package SqlParser diff --git a/src/Components/IntoKeyword.php b/src/Components/IntoKeyword.php index a0e5d54..cb25481 100644 --- a/src/Components/IntoKeyword.php +++ b/src/Components/IntoKeyword.php @@ -44,7 +44,7 @@ class IntoKeyword extends Component * * @var array */ - public $fields; + public $columns; /** * @param Parser $parser The parser that serves as context. @@ -114,7 +114,7 @@ class IntoKeyword extends Component $state = 1; } elseif ($state === 1) { if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { - $ret->fields = ArrayObj::parse($parser, $list)->values; + $ret->columns = ArrayObj::parse($parser, $list)->values; ++$list->idx; } break; diff --git a/src/Components/OrderKeyword.php b/src/Components/OrderKeyword.php index 7f1879c..2ca3525 100644 --- a/src/Components/OrderKeyword.php +++ b/src/Components/OrderKeyword.php @@ -26,11 +26,11 @@ class OrderKeyword extends Component { /** - * The field that is used for ordering. + * The expression that is used for ordering. * * @var Expression */ - public $field; + public $expr; /** * The order type. @@ -42,12 +42,12 @@ class OrderKeyword extends Component /** * Constructor. * - * @param Expression $field The field that we are sorting by. + * @param Expression $expr The expression that we are sorting by. * @param string $type The sorting type. */ - public function __construct($field = null, $type = 'ASC') + public function __construct($expr = null, $type = 'ASC') { - $this->field = $field; + $this->expr = $expr; $this->type = $type; } @@ -69,7 +69,7 @@ class OrderKeyword extends Component * * Below are the states of the parser. * - * 0 ----------------------[ field ]----------------------> 1 + * 0 --------------------[ expression ]-------------------> 1 * * 1 ------------------------[ , ]------------------------> 0 * 1 -------------------[ ASC / DESC ]--------------------> 1 @@ -96,13 +96,13 @@ class OrderKeyword extends Component } if ($state === 0) { - $expr->field = Expression::parse($parser, $list); + $expr->expr = Expression::parse($parser, $list); $state = 1; } elseif ($state === 1) { if (($token->type === Token::TYPE_KEYWORD) && (($token->value === 'ASC') || ($token->value === 'DESC'))) { $expr->type = $token->value; } elseif (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { - if (!empty($expr->field)) { + if (!empty($expr->expr)) { $ret[] = $expr; } $expr = new OrderKeyword(); @@ -115,7 +115,7 @@ class OrderKeyword extends Component } // Last iteration was not processed. - if (!empty($expr->field)) { + if (!empty($expr->expr)) { $ret[] = $expr; } @@ -137,7 +137,7 @@ class OrderKeyword extends Component } return implode(", ", $ret); } else { - return Expression::build($component->field) . ' ' . $component->type; + return Expression::build($component->expr) . ' ' . $component->type; } } } diff --git a/src/Components/SetOperation.php b/src/Components/SetOperation.php index fc05cf7..25bb9e4 100644 --- a/src/Components/SetOperation.php +++ b/src/Components/SetOperation.php @@ -57,7 +57,7 @@ class SetOperation extends Component * * Below are the states of the parser. * - * 0 -------------------[ field name ]--------------------> 1 + * 0 -------------------[ column name ]-------------------> 1 * * 1 ------------------------[ , ]------------------------> 0 * 1 ----------------------[ value ]----------------------> 1 diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php index 732b6a4..4c0d985 100644 --- a/src/Statements/CreateStatement.php +++ b/src/Statements/CreateStatement.php @@ -14,7 +14,7 @@ use SqlParser\Token; use SqlParser\TokensList; use SqlParser\Components\ArrayObj; use SqlParser\Components\DataType; -use SqlParser\Components\FieldDefinition; +use SqlParser\Components\CreateDefinition; use SqlParser\Components\Expression; use SqlParser\Components\OptionsArray; use SqlParser\Components\ParameterDefinition; @@ -164,12 +164,12 @@ class CreateStatement extends Statement public $entityOptions; /** - * If `CREATE TABLE`, a list of fields in the new table. + * If `CREATE TABLE`, a list of columns and keys. * If `CREATE VIEW`, a list of columns. * * Used by `CREATE TABLE` and `CREATE VIEW`. * - * @var FieldDefinition[]|ArrayObj + * @var CreateDefinition[]|ArrayObj */ public $fields; @@ -218,7 +218,7 @@ class CreateStatement extends Statement $fields = ''; if (!empty($this->fields)) { if (is_array($this->fields)) { - $fields = FieldDefinition::build($this->fields) . ' '; + $fields = CreateDefinition::build($this->fields) . ' '; } elseif ($this->fields instanceof ArrayObj) { $fields = ArrayObj::build($this->fields); } @@ -304,7 +304,7 @@ class CreateStatement extends Statement static::$DB_OPTIONS ); } elseif ($this->options->has('TABLE')) { - $this->fields = FieldDefinition::parse($parser, $list); + $this->fields = CreateDefinition::parse($parser, $list); if (empty($this->fields)) { $parser->error( __('At least one column definition was expected.'), diff --git a/src/Utils/Query.php b/src/Utils/Query.php index 604a902..41e99d1 100644 --- a/src/Utils/Query.php +++ b/src/Utils/Query.php @@ -449,40 +449,40 @@ class Query */ public static function getTables($statement) { - $fields = array(); + $expressions = array(); if (($statement instanceof InsertStatement) || ($statement instanceof ReplaceStatement) ) { - $fields = array($statement->into->dest); + $expressions = array($statement->into->dest); } elseif ($statement instanceof UpdateStatement) { - $fields = $statement->tables; + $expressions = $statement->tables; } elseif (($statement instanceof SelectStatement) || ($statement instanceof DeleteStatement) ) { - $fields = $statement->from; + $expressions = $statement->from; } elseif (($statement instanceof AlterStatement) || ($statement instanceof TruncateStatement) ) { - $fields = array($statement->table); + $expressions = array($statement->table); } elseif ($statement instanceof DropStatement) { if (!$statement->options->has('TABLE')) { // No tables are dropped. return array(); } - $fields = $statement->fields; + $expressions = $statement->fields; } elseif ($statement instanceof RenameStatement) { foreach ($statement->renames as $rename) { - $fields[] = $rename->old; + $expressions[] = $rename->old; } } $ret = array(); - foreach ($fields as $field) { - if (!empty($field->table)) { - $field->expr = null; // Force rebuild. - $field->alias = null; // Aliases are not required. - $ret[] = Expression::build($field); + foreach ($expressions as $expr) { + if (!empty($expr->table)) { + $expr->expr = null; // Force rebuild. + $expr->alias = null; // Aliases are not required. + $ret[] = Expression::build($expr); } } return $ret; diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php index 6aa994b..944cbe4 100644 --- a/tests/Builder/CreateStatementTest.php +++ b/tests/Builder/CreateStatementTest.php @@ -5,7 +5,7 @@ namespace SqlParser\Tests\Builder; use SqlParser\Parser; use SqlParser\Components\DataType; use SqlParser\Components\Expression; -use SqlParser\Components\FieldDefinition; +use SqlParser\Components\CreateDefinition; use SqlParser\Components\Key; use SqlParser\Components\OptionsArray; use SqlParser\Statements\CreateStatement; @@ -44,12 +44,12 @@ class CreateStatementTest extends TestCase $stmt->name = new Expression('', 'test', ''); $stmt->options = new OptionsArray(array('TABLE')); $stmt->fields = array( - new FieldDefinition( + new CreateDefinition( 'id', new OptionsArray(array('NOT NULL', 'AUTO_INCREMENT')), new DataType('INT', array(11), new OptionsArray(array('UNSIGNED'))) ), - new FieldDefinition( + new CreateDefinition( '', null, new Key('', array('id'), 'PRIMARY KEY') diff --git a/tests/Components/FieldDefinitionTest.php b/tests/Components/CreateDefinitionTest.php index 3ecc363..81c8ba8 100644 --- a/tests/Components/FieldDefinitionTest.php +++ b/tests/Components/CreateDefinitionTest.php @@ -3,16 +3,16 @@ namespace SqlParser\Tests\Components; use SqlParser\Parser; -use SqlParser\Components\FieldDefinition; +use SqlParser\Components\CreateDefinition; use SqlParser\Tests\TestCase; -class FieldDefinitionTest extends TestCase +class CreateDefinitionTest extends TestCase { public function testParse() { - $component = FieldDefinition::parse( + $component = CreateDefinition::parse( new Parser(), $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str))') ); @@ -25,7 +25,7 @@ class FieldDefinitionTest extends TestCase public function testParseErr1() { $parser = new Parser(); - $component = FieldDefinition::parse( + $component = CreateDefinition::parse( $parser, $this->getTokensList('(str TEXT, FULLTEXT INDEX indx (str)') ); @@ -39,7 +39,7 @@ class FieldDefinitionTest extends TestCase public function testParseErr2() { $parser = new Parser(); - $component = FieldDefinition::parse( + $component = CreateDefinition::parse( $parser, $this->getTokensList(')') ); @@ -61,7 +61,7 @@ class FieldDefinitionTest extends TestCase ); $this->assertEquals( 'CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE', - FieldDefinition::build($parser->statements[0]->fields[1]) + CreateDefinition::build($parser->statements[0]->fields[1]) ); } } diff --git a/tests/data/bugs/gh9.out b/tests/data/bugs/gh9.out index 4aefba9..d1a102a 100644 --- a/tests/data/bugs/gh9.out +++ b/tests/data/bugs/gh9.out @@ -31,4 +31,4 @@ COMMIT;";s:3:"len";i:213;s:4:"last";i:213;s:4:"list";O:20:"SqlParser\TokensList" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:164;}i:55;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"INDEX";s:5:"value";s:5:"INDEX";s:4:"type";i:1;s:5:"flags";i:19;s:8:"position";i:165;}i:56;O:15:"SqlParser\Token":5:{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:57;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:171;}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:172;}i:59;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`position`";s:5:"value";s:8:"position";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:173;}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:183;}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:16;s:8:"position";i:184;}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:185;}i:63;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:186;}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:187;}i:65;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:188;}i:66;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:194;}i:67;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:195;}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:196;}i:69;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:197;}i:70;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:203;}i:71;O:15:"SqlParser\Token":5:{s:5:"token";s:2:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:204;}i:72;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"COMMIT";s:5:"value";s:6:"COMMIT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:206;}i:73;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:212;}i:74;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:75;s:3:"idx";i:75;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:3:{i:0;O:36:"SqlParser\Statements\SelectStatement":15:{s:4:"expr";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:1:"*";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}}s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";N;s:5:"where";a:0:{}s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:9:"procedure";N;s:4:"into";N;s:4:"join";N;s:5:"union";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:5:"first";i:0;s:4:"last";i:9;}i:1;O:36:"SqlParser\Statements\SelectStatement":15:{s:4:"expr";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:1:"*";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}}s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";N;s:5:"where";a:0:{}s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:9:"procedure";N;s:4:"into";N;s:4:"join";N;s:5:"union";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:5:"first";i:10;s:4:"last";i:19;}i:2;O:41:"SqlParser\Statements\TransactionStatement":6:{s:4:"type";i:1;s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":10:{s:4:"name";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";s:2:"tb";s:6:"column";N;s:4:"expr";s:4:"`tb`";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:6:"fields";a:1:{i:0;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:3:"uid";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:6;s:5:"TABLE";}}s:5:"first";i:21;s:4:"last";i:37;}}s:3:"end";O:41:"SqlParser\Statements\TransactionStatement":6:{s:4:"type";i:2;s:10:"statements";N;s:3:"end";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:6:"COMMIT";}}s:5:"first";i:72;s:4:"last";i:72;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:17:"START TRANSACTION";}}s:5:"first";i:20;s:4:"last";i:20;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:5:{i:0;a:3:{i:0;s:42:"This type of clause was previously parsed.";i:1;r:70;i:2;i:0;}i:1;a:3:{i:0;s:76:"A new statement was found, but no delimiter between it and the previous one.";i:1;r:130;i:2;i:0;}i:2;a:3:{i:0;s:42:"A comma or a closing bracket was expected.";i:1;r:238;i:2;i:0;}i:3;a:3:{i:0;s:34:"Unexpected beginning of statement.";i:1;r:238;i:2;i:0;}i:4;a:3:{i:0;s:28:"Unrecognized statement type.";i:1;r:250;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:204;}i:72;O:15:"SqlParser\Token":5:{s:5:"token";s:6:"COMMIT";s:5:"value";s:6:"COMMIT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:206;}i:73;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:212;}i:74;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:75;s:3:"idx";i:75;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:3:{i:0;O:36:"SqlParser\Statements\SelectStatement":15:{s:4:"expr";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:1:"*";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}}s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";N;s:5:"where";a:0:{}s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:9:"procedure";N;s:4:"into";N;s:4:"join";N;s:5:"union";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:5:"first";i:0;s:4:"last";i:9;}i:1;O:36:"SqlParser\Statements\SelectStatement":15:{s:4:"expr";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:1:"*";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}}s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";N;s:5:"where";a:0:{}s:5:"group";N;s:6:"having";N;s:5:"order";N;s:5:"limit";N;s:9:"procedure";N;s:4:"into";N;s:4:"join";N;s:5:"union";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:5:"first";i:10;s:4:"last";i:19;}i:2;O:41:"SqlParser\Statements\TransactionStatement":6:{s:4:"type";i:1;s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\CreateStatement":10:{s:4:"name";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";s:2:"tb";s:6:"column";N;s:4:"expr";s:4:"`tb`";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:6:"fields";a:1:{i:0;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:3:"uid";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:6;s:5:"TABLE";}}s:5:"first";i:21;s:4:"last";i:37;}}s:3:"end";O:41:"SqlParser\Statements\TransactionStatement":6:{s:4:"type";i:2;s:10:"statements";N;s:3:"end";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:6:"COMMIT";}}s:5:"first";i:72;s:4:"last";i:72;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:17:"START TRANSACTION";}}s:5:"first";i:20;s:4:"last";i:20;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:5:{i:0;a:3:{i:0;s:42:"This type of clause was previously parsed.";i:1;r:70;i:2;i:0;}i:1;a:3:{i:0;s:76:"A new statement was found, but no delimiter between it and the previous one.";i:1;r:130;i:2;i:0;}i:2;a:3:{i:0;s:42:"A comma or a closing bracket was expected.";i:1;r:238;i:2;i:0;}i:3;a:3:{i:0;s:34:"Unexpected beginning of statement.";i:1;r:238;i:2;i:0;}i:4;a:3:{i:0;s:28:"Unrecognized statement type.";i:1;r:250;i:2;i:0;}}}}
\ No newline at end of file diff --git a/tests/data/parser/parseCreateTable.out b/tests/data/parser/parseCreateTable.out index fe1892c..27f05c4 100644 --- a/tests/data/parser/parseCreateTable.out +++ b/tests/data/parser/parseCreateTable.out @@ -16,4 +16,4 @@ a:4:{s:5:"query";s:229:"CREATE TABLE IF NOT EXISTS users ( ";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:35;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:23;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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;a:4:{s:4:"name";s:6:"ENGINE";s:6:"equals";b:1;s:4:"expr";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";}}}s:6:"fields";a:5:{i:0;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:2:"id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:1;s:8:"NOT NULL";i:3;s:14:"AUTO_INCREMENT";}}}i:1;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:8:"username";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:64;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:4:"NULL";}}}i:2;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:8:"password";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:256;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:2;a:4:{s:4:"name";s:7:"DEFAULT";s:6:"equals";b:0;s:4:"expr";s:8:"'123456'";s:5:"value";s:6:"123456";}}}}i:3;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:5:"pk_id";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:2:"id";}s:4:"type";s:11:"PRIMARY KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:4;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:8:"username";}s:4:"type";s:6:"UNIQUE";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:6;s:5:"TABLE";i:7;s:13:"IF NOT EXISTS";}}s:5:"first";i:0;s:4:"last";i:62;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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: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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;a:4:{s:4:"name";s:6:"ENGINE";s:6:"equals";b:1;s:4:"expr";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";}}}s:6:"fields";a:5:{i:0;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:2:"id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:1;s:8:"NOT NULL";i:3;s:14:"AUTO_INCREMENT";}}}i:1;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:8:"username";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:64;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:4:"NULL";}}}i:2;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:8:"password";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:256;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:2;a:4:{s:4:"name";s:7:"DEFAULT";s:6:"equals";b:0;s:4:"expr";s:8:"'123456'";s:5:"value";s:6:"123456";}}}}i:3;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:5:"pk_id";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:2:"id";}s:4:"type";s:11:"PRIMARY KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:4;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:8:"username";}s:4:"type";s:6:"UNIQUE";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:6;s:5:"TABLE";i:7;s:13:"IF NOT EXISTS";}}s:5:"first";i:0;s:4:"last";i:62;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseCreateTable2.out b/tests/data/parser/parseCreateTable2.out index 24a3991..60083e9 100644 --- a/tests/data/parser/parseCreateTable2.out +++ b/tests/data/parser/parseCreateTable2.out @@ -43,4 +43,4 @@ a:4:{s:5:"query";s:940:"CREATE TABLE `payment` ( ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:524;}i:126;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:527;}i:127;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:537;}i:128;O:15:"SqlParser\Token":5:{s:5:"token";s:21:"`fk_payment_customer`";s:5:"value";s:19:"fk_payment_customer";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:538;}i:129;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:559;}i:130;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"FOREIGN KEY";s:5:"value";s:11:"FOREIGN KEY";s:4:"type";i:1;s:5:"flags";i:23;s:8:"position";i:560;}i:131;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:571;}i:132;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:572;}i:133;O:15:"SqlParser\Token":5:{s:5:"token";s:13:"`customer_id`";s:5:"value";s:11:"customer_id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:573;}i:134;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:586;}i:135;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:587;}i:136;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"REFERENCES";s:5:"value";s:10:"REFERENCES";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:588;}i:137;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:598;}i:138;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`customer`";s:5:"value";s:8:"customer";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:599;}i:139;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:609;}i:140;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:610;}i:141;O:15:"SqlParser\Token":5:{s:5:"token";s:13:"`customer_id`";s:5:"value";s:11:"customer_id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:611;}i:142;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:624;}i:143;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:625;}i:144;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"ON UPDATE";s:5:"value";s:9:"ON UPDATE";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:626;}i:145;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:635;}i:146;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:636;}i:147;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:643;}i:148;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:644;}i:149;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:647;}i:150;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:657;}i:151;O:15:"SqlParser\Token":5:{s:5:"token";s:19:"`fk_payment_rental`";s:5:"value";s:17:"fk_payment_rental";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:658;}i:152;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:677;}i:153;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"FOREIGN KEY";s:5:"value";s:11:"FOREIGN KEY";s:4:"type";i:1;s:5:"flags";i:23;s:8:"position";i:678;}i:154;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:689;}i:155;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:690;}i:156;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"`rental_id`";s:5:"value";s:9:"rental_id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:691;}i:157;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:702;}i:158;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:703;}i:159;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"REFERENCES";s:5:"value";s:10:"REFERENCES";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:704;}i:160;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:714;}i:161;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"`rental`";s:5:"value";s:6:"rental";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:715;}i:162;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:723;}i:163;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:724;}i:164;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"`rental_id`";s:5:"value";s:9:"rental_id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:725;}i:165;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:736;}i:166;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:737;}i:167;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"ON DELETE";s:5:"value";s:9:"ON DELETE";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:738;}i:168;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:747;}i:169;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"SET NULL";s:5:"value";s:8:"SET NULL";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:748;}i:170;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:756;}i:171;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"ON UPDATE";s:5:"value";s:9:"ON UPDATE";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:757;}i:172;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:766;}i:173;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:767;}i:174;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:774;}i:175;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:775;}i:176;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:778;}i:177;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:788;}i:178;O:15:"SqlParser\Token":5:{s:5:"token";s:18:"`fk_payment_staff`";s:5:"value";s:16:"fk_payment_staff";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:789;}i:179;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:807;}i:180;O:15:"SqlParser\Token":5:{s:5:"token";s:11:"FOREIGN KEY";s:5:"value";s:11:"FOREIGN KEY";s:4:"type";i:1;s:5:"flags";i:23;s:8:"position";i:808;}i:181;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:819;}i:182;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:820;}i:183;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`staff_id`";s:5:"value";s:8:"staff_id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:821;}i:184;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:831;}i:185;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:832;}i:186;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"REFERENCES";s:5:"value";s:10:"REFERENCES";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:833;}i:187;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:843;}i:188;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"`staff`";s:5:"value";s:5:"staff";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:844;}i:189;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:851;}i:190;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:852;}i:191;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"`staff_id`";s:5:"value";s:8:"staff_id";s:4:"type";i:8;s:5:"flags";i:2;s:8:"position";i:853;}i:192;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:863;}i:193;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:864;}i:194;O:15:"SqlParser\Token":5:{s:5:"token";s:9:"ON UPDATE";s:5:"value";s:9:"ON UPDATE";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:865;}i:195;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:874;}i:196;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:875;}i:197;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" -";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:882;}i:198;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:883;}i:199;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:884;}i:200;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:885;}i:201;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:891;}i:202;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:892;}i:203;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:898;}i:204;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:899;}i:205;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:913;}i:206;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"16050";s:5:"value";i:16050;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:914;}i:207;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:919;}i:208;O:15:"SqlParser\Token":5:{s:5:"token";s:15:"DEFAULT CHARSET";s:5:"value";s:15:"DEFAULT CHARSET";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:920;}i:209;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:935;}i:210;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"utf8";s:5:"value";s:4:"utf8";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:936;}i:211;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:212;s:3:"idx";i:212;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";s:7:"payment";s:6:"column";N;s:4:"expr";s:9:"`payment`";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:3:{i:1;a:4:{s:4:"name";s:6:"ENGINE";s:6:"equals";b:1;s:4:"expr";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";}i:2;a:4:{s:4:"name";s:14:"AUTO_INCREMENT";s:6:"equals";b:1;s:4:"expr";s:5:"16050";s:5:"value";s:5:"16050";}i:4;a:4:{s:4:"name";s:15:"DEFAULT CHARSET";s:6:"equals";b:1;s:4:"expr";s:4:"utf8";s:5:"value";s:4:"utf8";}}}s:6:"fields";a:14:{i:0;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:10:"payment_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:8:"SMALLINT";s:10:"parameters";a:1:{i:0;i:5;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:1;s:8:"NOT NULL";i:3;s:14:"AUTO_INCREMENT";}}}i:1;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:11:"customer_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:8:"SMALLINT";s:10:"parameters";a:1:{i:0;i:5;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:2;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:8:"staff_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"TINYINT";s:10:"parameters";a:1:{i:0;i:3;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:3;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:9:"rental_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:1:{i:0;i:11;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:2;a:4:{s:4:"name";s:7:"DEFAULT";s:6:"equals";b:0;s:4:"expr";s:4:"NULL";s:5:"value";s:4:"NULL";}}}}i:4;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:6:"amount";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"DECIMAL";s:10:"parameters";a:2:{i:0;i:5;i:1;i:2;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:5;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:12:"payment_date";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:8:"DATETIME";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:6;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:11:"last_update";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:9:"TIMESTAMP";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:3:{i:1;s:8:"NOT NULL";i:2;a:4:{s:4:"name";s:7:"DEFAULT";s:6:"equals";b:0;s:4:"expr";s:17:"CURRENT_TIMESTAMP";s:5:"value";s:17:"CURRENT_TIMESTAMP";}i:7;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:17:"CURRENT_TIMESTAMP";s:5:"value";s:17:"CURRENT_TIMESTAMP";}}}}i:7;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:10:"payment_id";}s:4:"type";s:11:"PRIMARY KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:8;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";s:15:"idx_fk_staff_id";s:7:"columns";a:1:{i:0;s:8:"staff_id";}s:4:"type";s:3:"KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:9;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";s:18:"idx_fk_customer_id";s:7:"columns";a:1:{i:0;s:11:"customer_id";}s:4:"type";s:3:"KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:10;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";s:17:"fk_payment_rental";s:7:"columns";a:1:{i:0;s:9:"rental_id";}s:4:"type";s:3:"KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:11;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:19:"fk_payment_customer";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:11:"customer_id";}s:4:"type";s:11:"FOREIGN KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";O:30:"SqlParser\Components\Reference":3:{s:5:"table";s:8:"customer";s:7:"columns";a:1:{i:0;s:11:"customer_id";}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:3;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";}}}}s:7:"options";N;}i:12;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:17:"fk_payment_rental";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:9:"rental_id";}s:4:"type";s:11:"FOREIGN KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";O:30:"SqlParser\Components\Reference":3:{s:5:"table";s:6:"rental";s:7:"columns";a:1:{i:0;s:9:"rental_id";}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:2;a:4:{s:4:"name";s:9:"ON DELETE";s:6:"equals";b:0;s:4:"expr";s:8:"SET NULL";s:5:"value";s:8:"SET NULL";}i:3;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";}}}}s:7:"options";N;}i:13;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:16:"fk_payment_staff";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:8:"staff_id";}s:4:"type";s:11:"FOREIGN KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";O:30:"SqlParser\Components\Reference":3:{s:5:"table";s:5:"staff";s:7:"columns";a:1:{i:0;s:8:"staff_id";}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:3;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";}}}}s:7:"options";N;}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:6;s:5:"TABLE";}}s:5:"first";i:0;s:4:"last";i:210;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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:882;}i:198;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:883;}i:199;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:884;}i:200;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:885;}i:201;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:891;}i:202;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:892;}i:203;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:898;}i:204;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:899;}i:205;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:913;}i:206;O:15:"SqlParser\Token":5:{s:5:"token";s:5:"16050";s:5:"value";i:16050;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:914;}i:207;O:15:"SqlParser\Token":5:{s:5:"token";s:1:" ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:919;}i:208;O:15:"SqlParser\Token":5:{s:5:"token";s:15:"DEFAULT CHARSET";s:5:"value";s:15:"DEFAULT CHARSET";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:920;}i:209;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:935;}i:210;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"utf8";s:5:"value";s:4:"utf8";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:936;}i:211;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:212;s:3:"idx";i:212;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";s:7:"payment";s:6:"column";N;s:4:"expr";s:9:"`payment`";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:3:{i:1;a:4:{s:4:"name";s:6:"ENGINE";s:6:"equals";b:1;s:4:"expr";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";}i:2;a:4:{s:4:"name";s:14:"AUTO_INCREMENT";s:6:"equals";b:1;s:4:"expr";s:5:"16050";s:5:"value";s:5:"16050";}i:4;a:4:{s:4:"name";s:15:"DEFAULT CHARSET";s:6:"equals";b:1;s:4:"expr";s:4:"utf8";s:5:"value";s:4:"utf8";}}}s:6:"fields";a:14:{i:0;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:10:"payment_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:8:"SMALLINT";s:10:"parameters";a:1:{i:0;i:5;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:1;s:8:"NOT NULL";i:3;s:14:"AUTO_INCREMENT";}}}i:1;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:11:"customer_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:8:"SMALLINT";s:10:"parameters";a:1:{i:0;i:5;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:2;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:8:"staff_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"TINYINT";s:10:"parameters";a:1:{i:0;i:3;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:4;s:8:"UNSIGNED";}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:3;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:9:"rental_id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:1:{i:0;i:11;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:2;a:4:{s:4:"name";s:7:"DEFAULT";s:6:"equals";b:0;s:4:"expr";s:4:"NULL";s:5:"value";s:4:"NULL";}}}}i:4;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:6:"amount";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"DECIMAL";s:10:"parameters";a:2:{i:0;i:5;i:1;i:2;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:5;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:12:"payment_date";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:8:"DATETIME";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:6;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:11:"last_update";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:9:"TIMESTAMP";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:3:{i:1;s:8:"NOT NULL";i:2;a:4:{s:4:"name";s:7:"DEFAULT";s:6:"equals";b:0;s:4:"expr";s:17:"CURRENT_TIMESTAMP";s:5:"value";s:17:"CURRENT_TIMESTAMP";}i:7;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:17:"CURRENT_TIMESTAMP";s:5:"value";s:17:"CURRENT_TIMESTAMP";}}}}i:7;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:10:"payment_id";}s:4:"type";s:11:"PRIMARY KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:8;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";s:15:"idx_fk_staff_id";s:7:"columns";a:1:{i:0;s:8:"staff_id";}s:4:"type";s:3:"KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:9;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";s:18:"idx_fk_customer_id";s:7:"columns";a:1:{i:0;s:11:"customer_id";}s:4:"type";s:3:"KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:10;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";N;s:12:"isConstraint";N;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";s:17:"fk_payment_rental";s:7:"columns";a:1:{i:0;s:9:"rental_id";}s:4:"type";s:3:"KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";N;s:7:"options";N;}i:11;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:19:"fk_payment_customer";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:11:"customer_id";}s:4:"type";s:11:"FOREIGN KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";O:30:"SqlParser\Components\Reference":3:{s:5:"table";s:8:"customer";s:7:"columns";a:1:{i:0;s:11:"customer_id";}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:3;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";}}}}s:7:"options";N;}i:12;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:17:"fk_payment_rental";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:9:"rental_id";}s:4:"type";s:11:"FOREIGN KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";O:30:"SqlParser\Components\Reference":3:{s:5:"table";s:6:"rental";s:7:"columns";a:1:{i:0;s:9:"rental_id";}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:2;a:4:{s:4:"name";s:9:"ON DELETE";s:6:"equals";b:0;s:4:"expr";s:8:"SET NULL";s:5:"value";s:8:"SET NULL";}i:3;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";}}}}s:7:"options";N;}i:13;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:16:"fk_payment_staff";s:12:"isConstraint";b:1;s:4:"type";N;s:3:"key";O:24:"SqlParser\Components\Key":4:{s:4:"name";N;s:7:"columns";a:1:{i:0;s:8:"staff_id";}s:4:"type";s:11:"FOREIGN KEY";s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:10:"references";O:30:"SqlParser\Components\Reference":3:{s:5:"table";s:5:"staff";s:7:"columns";a:1:{i:0;s:8:"staff_id";}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:3;a:4:{s:4:"name";s:9:"ON UPDATE";s:6:"equals";b:0;s:4:"expr";s:7:"CASCADE";s:5:"value";s:7:"CASCADE";}}}}s:7:"options";N;}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:6;s:5:"TABLE";}}s:5:"first";i:0;s:4:"last";i:210;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseCreateTable3.out b/tests/data/parser/parseCreateTable3.out index ca6862e..d3b5976 100644 --- a/tests/data/parser/parseCreateTable3.out +++ b/tests/data/parser/parseCreateTable3.out @@ -13,4 +13,4 @@ a:4:{s:5:"query";s:139:"CREATE TABLE table1 ( ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:41;}i:15;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:46;}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:47;}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:48;}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:2:"32";s:5:"value";i:32;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:56;}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:58;}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:59;}i:22;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:23;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"c";s:5:"value";s:1:"c";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:65;}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:66;}i:25;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:67;}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:70;}i:27;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:71;}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:73;}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";s:1:"a";s:5:"value";s:1:"a";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:75;}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:76;}i:32;O:15:"SqlParser\Token":5:{s:5:"token";s:3:"mod";s:5:"value";s:3:"MOD";s:4:"type";i:1;s:5:"flags";i:35;s:8:"position";i:77;}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:80;}i:34;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:81;}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:83;}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:84;}i:37;O:15:"SqlParser\Token":5:{s:5:"token";s:7:"VIRTUAL";s:5:"value";s:7:"VIRTUAL";s:4:"type";i:1;s:5:"flags";i:3;s:8:"position";i:85;}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:92;}i:39;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:93;}i:40;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"d";s:5:"value";s:1:"d";s:4:"type";i:0;s:5:"flags";i:0;s:8:"position";i:98;}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:99;}i:42;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:100;}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:107;}i:44;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"5";s:5:"value";i:5;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:108;}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:109;}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:110;}i:47;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:111;}i:48;O:15:"SqlParser\Token":5:{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: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:114;}i:50;O:15:"SqlParser\Token":5:{s:5:"token";s:4:"left";s:5:"value";s:4:"LEFT";s:4:"type";i:1;s:5:"flags";i:35;s:8:"position";i:115;}i:51;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:119;}i:52;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:120;}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:121;}i:54;O:15:"SqlParser\Token":5:{s:5:"token";s:1:"5";s:5:"value";i:5;s:4:"type";i:6;s:5:"flags";i:0;s:8:"position";i:122;}i:55;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:123;}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:124;}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:125;}i:58;O:15:"SqlParser\Token":5:{s:5:"token";s:10:"PERSISTENT";s:5:"value";s:10:"PERSISTENT";s:4:"type";i:1;s:5:"flags";i:1;s:8:"position";i:126;}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:136;}i:60;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:137;}i:61;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:62;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:63;s:3:"idx";i:63;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";s:6:"table1";s:6:"column";N;s:4:"expr";s:6:"table1";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:6:"fields";a:4:{i:0;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:1:"a";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:1;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:1:"b";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:32;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}i:2;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:1:"c";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:9;a:3:{s:4:"name";s:2:"AS";s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:10:"(a mod 10)";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:5:"value";s:10:"(a mod 10)";}i:10;s:7:"VIRTUAL";}}}i:3;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:1:"d";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:5;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:9;a:3:{s:4:"name";s:2:"AS";s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:11:"(left(b,5))";s:5:"alias";N;s:8:"function";s:4:"LEFT";s:8:"subquery";N;}s:5:"value";s:11:"(left(b,5))";}i:11;s:10:"PERSISTENT";}}}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:6;s:5:"TABLE";}}s:5:"first";i:0;s:4:"last";i:60;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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:136;}i:60;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:137;}i:61;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:62;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:63;s:3:"idx";i:63;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";s:6:"table1";s:6:"column";N;s:4:"expr";s:6:"table1";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}s:6:"fields";a:4:{i:0;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:1:"a";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:8:"NOT NULL";}}}i:1;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:1:"b";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:32;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}i:2;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:1:"c";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:3:"INT";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:9;a:3:{s:4:"name";s:2:"AS";s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:10:"(a mod 10)";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:5:"value";s:10:"(a mod 10)";}i:10;s:7:"VIRTUAL";}}}i:3;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:1:"d";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"VARCHAR";s:10:"parameters";a:1:{i:0;i:5;}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:9;a:3:{s:4:"name";s:2:"AS";s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:11:"(left(b,5))";s:5:"alias";N;s:8:"function";s:4:"LEFT";s:8:"subquery";N;}s:5:"value";s:11:"(left(b,5))";}i:11;s:10:"PERSISTENT";}}}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:6;s:5:"TABLE";}}s:5:"first";i:0;s:4:"last";i:60;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseCreateTableErr1.out b/tests/data/parser/parseCreateTableErr1.out index d168271..cb747b7 100644 --- a/tests/data/parser/parseCreateTableErr1.out +++ b/tests/data/parser/parseCreateTableErr1.out @@ -4,4 +4,4 @@ a:4:{s:5:"query";s:68:"CREATE TABLE IF NOT EXISTS users ( `id` UNKNOWN ) ENGINE=InnoDB;";s:3:"len";i:68;s:4:"last";i:68;s:4:"list";O:20:"SqlParser\TokensList":3:{s:6:"tokens";a:21:{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:7;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:7:"UNKNOWN";s:5:"value";s:7:"UNKNOWN";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:51;}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:52;}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:53;}i:16;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:54;}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:2;s:8:"position";i:60;}i:18;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:61;}i:19;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:67;}i:20;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:21;s:3:"idx";i:21;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;a:4:{s:4:"name";s:6:"ENGINE";s:6:"equals";b:1;s:4:"expr";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";}}}s:6:"fields";a:1:{i:0;O:36:"SqlParser\Components\FieldDefinition":6:{s:4:"name";s:2:"id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"UNKNOWN";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:6;s:5:"TABLE";i:7;s:13:"IF NOT EXISTS";}}s:5:"first";i:0;s:4:"last";i:18;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:1:{i:0;a:3:{i:0;s:23:"Unrecognized data type.";i:1;r:82;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:51;}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:52;}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:53;}i:16;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:54;}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:2;s:8:"position";i:60;}i:18;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:61;}i:19;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:67;}i:20;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:21;s:3:"idx";i:21;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;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:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:13:"entityOptions";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;a:4:{s:4:"name";s:6:"ENGINE";s:6:"equals";b:1;s:4:"expr";s:6:"InnoDB";s:5:"value";s:6:"InnoDB";}}}s:6:"fields";a:1:{i:0;O:37:"SqlParser\Components\CreateDefinition":6:{s:4:"name";s:2:"id";s:12:"isConstraint";N;s:4:"type";O:29:"SqlParser\Components\DataType":3:{s:4:"name";s:7:"UNKNOWN";s:10:"parameters";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}s:3:"key";N;s:10:"references";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:0:{}}}}s:5:"table";N;s:6:"return";N;s:10:"parameters";N;s:4:"body";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:2:{i:6;s:5:"TABLE";i:7;s:13:"IF NOT EXISTS";}}s:5:"first";i:0;s:4:"last";i:18;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:1:{i:0;a:3:{i:0;s:23:"Unrecognized data type.";i:1;r:82;i:2;i:0;}}}}
\ No newline at end of file diff --git a/tests/data/parser/parseDelete.out b/tests/data/parser/parseDelete.out index da4b42f..b863243 100644 --- a/tests/data/parser/parseDelete.out +++ b/tests/data/parser/parseDelete.out @@ -16,4 +16,4 @@ ORDER BY ";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:8:"ORDER BY";s:5:"value";s:8:"ORDER BY";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:99;}i:31;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: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:112;}i:33;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:34;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:35;s:3:"idx";i:35;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\DeleteStatement":8:{s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";N;s:5:"where";a:5:{i:0;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:1:{i:0;s:2:"id";}s:10:"isOperator";b:0;s:4:"expr";s:6:"`id`<3";}i:1;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:0:{}s:10:"isOperator";b:1;s:4:"expr";s:3:"AND";}i:2;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:2:{i:0;s:8:"username";i:1;s:3:"Dan";}s:10:"isOperator";b:0;s:4:"expr";s:15:"(username="Dan"";}i:3;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:0:{}s:10:"isOperator";b:1;s:4:"expr";s:2:"OR";}i:4;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:2:{i:0;s:8:"username";i:1;s:4:"Paul";}s:10:"isOperator";b:0;s:4:"expr";s:16:"username="Paul")";}}s:5:"order";a:1:{i:0;O:33:"SqlParser\Components\OrderKeyword":2:{s:5:"field";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:4:"type";s:3:"ASC";}}s:5:"limit";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:32;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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:107;}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:112;}i:33;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:34;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:35;s:3:"idx";i:35;}s:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\DeleteStatement":8:{s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";N;s:5:"where";a:5:{i:0;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:1:{i:0;s:2:"id";}s:10:"isOperator";b:0;s:4:"expr";s:6:"`id`<3";}i:1;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:0:{}s:10:"isOperator";b:1;s:4:"expr";s:3:"AND";}i:2;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:2:{i:0;s:8:"username";i:1;s:3:"Dan";}s:10:"isOperator";b:0;s:4:"expr";s:15:"(username="Dan"";}i:3;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:0:{}s:10:"isOperator";b:1;s:4:"expr";s:2:"OR";}i:4;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:2:{i:0;s:8:"username";i:1;s:4:"Paul";}s:10:"isOperator";b:0;s:4:"expr";s:16:"username="Paul")";}}s:5:"order";a:1:{i:0;O:33:"SqlParser\Components\OrderKeyword":2:{s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:4:"type";s:3:"ASC";}}s:5:"limit";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:32;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseInsert.out b/tests/data/parser/parseInsert.out index 05c6e53..481d15d 100644 --- a/tests/data/parser/parseInsert.out +++ b/tests/data/parser/parseInsert.out @@ -13,4 +13,4 @@ VALUES ";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:35;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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\InsertStatement":5:{s:4:"into";O:32:"SqlParser\Components\IntoKeyword":3:{s:4:"type";N;s:4:"dest";O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}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:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:3:{i:0;s:1:"1";i:1;s:5:""Dan"";i:2;s:34:""5d41402abc4b2a76b9719d911017c592"";}s:6:"values";a:3:{i:0;i:1;i:1;s:3:"Dan";i:2;s:32:"5d41402abc4b2a76b9719d911017c592";}}i:1;O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:3:{i:0;s:1:"2";i:1;s:6:""Paul"";i:2;s:34:""7d793037a0760186574b0282f2f435e7"";}s:6:"values";a:3:{i:0;i:2;i:1;s:4:"Paul";i:2;s:32:"7d793037a0760186574b0282f2f435e7";}}}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:38;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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: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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\InsertStatement":5:{s:4:"into";O:32:"SqlParser\Components\IntoKeyword":3:{s:4:"type";N;s:4:"dest";O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:7:"columns";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:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:3:{i:0;s:1:"1";i:1;s:5:""Dan"";i:2;s:34:""5d41402abc4b2a76b9719d911017c592"";}s:6:"values";a:3:{i:0;i:1;i:1;s:3:"Dan";i:2;s:32:"5d41402abc4b2a76b9719d911017c592";}}i:1;O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:3:{i:0;s:1:"2";i:1;s:6:""Paul"";i:2;s:34:""7d793037a0760186574b0282f2f435e7"";}s:6:"values";a:3:{i:0;i:2;i:1;s:4:"Paul";i:2;s:32:"7d793037a0760186574b0282f2f435e7";}}}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:38;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseReplace.out b/tests/data/parser/parseReplace.out index e09cbc9..0c9f901 100644 --- a/tests/data/parser/parseReplace.out +++ b/tests/data/parser/parseReplace.out @@ -4,4 +4,4 @@ VALUES (1, 'Foo'), (2, 'Bar')";s:5:"lexer";O:15:"SqlParser\Lexer":8:{s:6:"strict INTO users(id, username) VALUES (1, 'Foo'), (2, 'Bar')";s:3:"len";i:75;s:4:"last";i:75;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:35;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:35;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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:4:"into";O:32:"SqlParser\Components\IntoKeyword":3:{s:4:"type";N;s:4:"dest";O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:6:"fields";a:2:{i:0;s:2:"id";i:1;s:8:"username";}}s:6:"values";a:2:{i:0;O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:2:{i:0;s:1:"1";i:1;s:5:"'Foo'";}s:6:"values";a:2:{i:0;i:1;i:1;s:3:"Foo";}}i:1;O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:2:{i:0;s:1:"2";i:1;s:5:"'Bar'";}s:6:"values";a:2:{i:0;i:2;i:1;s:3:"Bar";}}}s:3:"set";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:29;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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: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:35;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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:4:"into";O:32:"SqlParser\Components\IntoKeyword":3:{s:4:"type";N;s:4:"dest";O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:7:"columns";a:2:{i:0;s:2:"id";i:1;s:8:"username";}}s:6:"values";a:2:{i:0;O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:2:{i:0;s:1:"1";i:1;s:5:"'Foo'";}s:6:"values";a:2:{i:0;i:1;i:1;s:3:"Foo";}}i:1;O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:2:{i:0;s:1:"2";i:1;s:5:"'Bar'";}s:6:"values";a:2:{i:0;i:2;i:1;s:3:"Bar";}}}s:3:"set";N;s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:29;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseReplace2.out b/tests/data/parser/parseReplace2.out index 4f02f56..83a200a 100644 --- a/tests/data/parser/parseReplace2.out +++ b/tests/data/parser/parseReplace2.out @@ -7,4 +7,4 @@ SET id = 1, username = 'Bar';";s:3:"len";i:65;s:4:"last";i:65;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:35;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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:4:"into";O:32:"SqlParser\Components\IntoKeyword":3:{s:4:"type";N;s:4:"dest";O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:6:"fields";N;}s:6:"values";N;s:3:"set";a:2:{i:0;O:33:"SqlParser\Components\SetOperation":2:{s:6:"column";s:2:"id";s:5:"value";s:1:"1";}i:1;O:33:"SqlParser\Components\SetOperation":2:{s:6:"column";s:8:"username";s:5:"value";s:5:"'Bar'";}}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:21;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";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: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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:37:"SqlParser\Statements\ReplaceStatement":6:{s:4:"into";O:32:"SqlParser\Components\IntoKeyword":3:{s:4:"type";N;s:4:"dest";O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}s:7:"columns";N;}s:6:"values";N;s:3:"set";a:2:{i:0;O:33:"SqlParser\Components\SetOperation":2:{s:6:"column";s:2:"id";s:5:"value";s:1:"1";}i:1;O:33:"SqlParser\Components\SetOperation":2:{s:6:"column";s:8:"username";s:5:"value";s:5:"'Bar'";}}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:1:{i:1;s:12:"LOW_PRIORITY";}}s:5:"first";i:0;s:4:"last";i:21;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:0:{}}}
\ No newline at end of file diff --git a/tests/data/parser/parseSelectErr1.out b/tests/data/parser/parseSelectErr1.out index 2d72ce4..d3d5297 100644 --- a/tests/data/parser/parseSelectErr1.out +++ b/tests/data/parser/parseSelectErr1.out @@ -37,4 +37,4 @@ LIMIT 2, 3;";s:3:"len";i:220;s:4:"last";i:220;s:4:"list";O:20:"SqlParser\TokensL ";s:5:"value";s:1:" ";s:4:"type";i:3;s:5:"flags";i:0;s:8:"position";i:173;}i:60;O:15:"SqlParser\Token":5:{s:5:"token";s:8:"ORDER BY";s:5:"value";s:8:"ORDER BY";s:4:"type";i:1;s:5:"flags";i:7;s:8:"position";i:174;}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:182;}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:187;}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:195;}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:196;}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:200;}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:201;}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:206;}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:208;}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:209;}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:214;}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:215;}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:216;}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:217;}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:218;}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:219;}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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":15:{s:4:"expr";a:4:{i:0;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:5:"1 + 2";s:5:"alias";s:6:"result";s:8:"function";N;s:8:"subquery";N;}i:1;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:4:"@idx";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}i:2;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}i:3;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}s:6:"values";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}}s:5:"where";a:1:{i:0;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:1:{i:0;s:2:"id";}s:10:"isOperator";b:0;s:4:"expr";s:6:"id > 0";}}s:5:"group";N;s:6:"having";N;s:5:"order";a:2:{i:0;O:33:"SqlParser\Components\OrderKeyword":2:{s:5:"field";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:8:"username";s:4:"expr";s:8:"username";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:4:"type";s:4:"DESC";}i:1;O:33:"SqlParser\Components\OrderKeyword":2:{s:5:"field";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:4:"type";s:3:"ASC";}}s:5:"limit";O:26:"SqlParser\Components\Limit":2:{s:6:"offset";i:2;s:8:"rowCount";i:3;}s:9:"procedure";N;s:4:"into";N;s:4:"join";N;s:5:"union";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:3:{i:1;s:3:"ALL";i:3;a:4:{s:4:"name";s:18:"MAX_STATEMENT_TIME";s:6:"equals";b:1;s:4:"expr";s:2:"10";s:5:"value";s:2:"10";}i:13;s:8:"DISTINCT";}}s:5:"first";i:0;s:4:"last";i:74;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:2:{i:0;a:3:{i:0;s:33:"This option conflicts with "ALL".";i:1;r:34;i:2;i:0;}i:1;a:3:{i:0;s:22:"An alias was expected.";i:1;r:226;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:208;}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:209;}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:214;}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:215;}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:216;}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:217;}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:218;}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:219;}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:9:"delimiter";s:1:";";s:12:"delimiterLen";i:1;s:6:"errors";a:0:{}}s:6:"parser";O:16:"SqlParser\Parser":4:{s:4:"list";r:8;s:6:"strict";b:0;s:6:"errors";a:0:{}s:10:"statements";a:1:{i:0;O:36:"SqlParser\Statements\SelectStatement":15:{s:4:"expr";a:4:{i:0;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:5:"1 + 2";s:5:"alias";s:6:"result";s:8:"function";N;s:8:"subquery";N;}i:1;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";N;s:4:"expr";s:4:"@idx";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}i:2;O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}i:3;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:4:"from";a:1:{i:0;O:31:"SqlParser\Components\Expression":7:{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:8:"function";N;s:8:"subquery";N;}}s:9:"partition";O:29:"SqlParser\Components\ArrayObj":2:{s:3:"raw";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}s:6:"values";a:2:{i:0;s:2:"p1";i:1;s:2:"p2";}}s:5:"where";a:1:{i:0;O:30:"SqlParser\Components\Condition":3:{s:11:"identifiers";a:1:{i:0;s:2:"id";}s:10:"isOperator";b:0;s:4:"expr";s:6:"id > 0";}}s:5:"group";N;s:6:"having";N;s:5:"order";a:2:{i:0;O:33:"SqlParser\Components\OrderKeyword":2:{s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:8:"username";s:4:"expr";s:8:"username";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:4:"type";s:4:"DESC";}i:1;O:33:"SqlParser\Components\OrderKeyword":2:{s:4:"expr";O:31:"SqlParser\Components\Expression":7:{s:8:"database";N;s:5:"table";N;s:6:"column";s:2:"id";s:4:"expr";s:2:"id";s:5:"alias";N;s:8:"function";N;s:8:"subquery";N;}s:4:"type";s:3:"ASC";}}s:5:"limit";O:26:"SqlParser\Components\Limit":2:{s:6:"offset";i:2;s:8:"rowCount";i:3;}s:9:"procedure";N;s:4:"into";N;s:4:"join";N;s:5:"union";a:0:{}s:7:"options";O:33:"SqlParser\Components\OptionsArray":1:{s:7:"options";a:3:{i:1;s:3:"ALL";i:3;a:4:{s:4:"name";s:18:"MAX_STATEMENT_TIME";s:6:"equals";b:1;s:4:"expr";s:2:"10";s:5:"value";s:2:"10";}i:13;s:8:"DISTINCT";}}s:5:"first";i:0;s:4:"last";i:74;}}}s:6:"errors";a:2:{s:5:"lexer";a:0:{}s:6:"parser";a:2:{i:0;a:3:{i:0;s:33:"This option conflicts with "ALL".";i:1;r:34;i:2;i:0;}i:1;a:3:{i:0;s:22:"An alias was expected.";i:1;r:226;i:2;i:0;}}}}
\ No newline at end of file |